﻿<!DOCTYPE html>
<!--[if lte IE 9]>
<html class="ie" lang="en">
<![endif]-->
<!--[if gt IE 9]><!-->
<html lang="en" class="no-js cookie_used_false">
<!--<![endif]-->

<head>

  <meta charset="UTF-8">

    <script src="js/cookie_used_reload-ad47fd0c6e26ac84e84e95272cddc82a26caa7342cea5c006434d4bbb69d7b44.js"></script>


  

  <title>motion graphic typeface</title>

    <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@CodePen">
  <meta name="twitter:title" content="motion graphic typeface">
  <meta name="twitter:description" content="...">
  <meta name="twitter:image" content="https://s3-us-west-2.amazonaws.com/i.cdpn.io/42687.nuJCG.3756eccb-9af5-40e2-80bf-2d28681205f3.png">

  <meta property="og:image" content="https://codepen.io/ara_node/pen/nuJCG/image/large.png" itemprop="thumbnailUrl">
  <meta property="og:title" content="motion graphic typeface">
  <meta property="og:url" content="https://codepen.io/ara_node/details/nuJCG">
  <meta property="og:site_name" content="CodePen">
  <meta property="og:description" content="...">

  <link rel="alternate" type="application/json+oembed"
  href="https://codepen.io/api/oembed?url=https://codepen.io/ara_node/pen/nuJCG&format=json"
  title="motion graphic typeface" />

  <link href='css/18922f9953534d699ab0f806c7fd0a07.css' rel='stylesheet'>

  <link rel="stylesheet" media="all" href="css/global-nomq-f9371f8113efc98c41b6d2a9b56d0912a52e7858f52cc50ff2523fb2e52577af.css" />
  <link rel="stylesheet" media="all" href="css/editor-6bea6a643062afba47731e0bcd1f14ce3f06725ca18626a2c270334216d8ef02.css" />

  
  <meta name="description" content="...">

  


<link rel="stylesheet" media="screen" href="css/twilight-913694f984ee6a61665648153e2c73cc43af641fe5b14faca0bb1a6febfa9358.css" id="cm-theme" />

<style id="cm-font-family" class="cm-font-family">
  
  .CodeMirror,
  .console-logs .console-line,
  .console-command-line-input,
  .console-message,
  .CodeMirror-hint {
    font-family: Monaco, MonoSpace;
  }
</style>

<style id="cm-font-size">
  .CodeMirror,
  .console-logs .console-line,
  .console-command-line-input,
  .console-message,
  .CodeMirror-hint {
    font-size: 14px;
  }
</style>






  <link rel="shortcut icon" type="image/x-icon" href="https://production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico" />
  <link rel="mask-icon" type="" href="https://production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg" color="#111" />

  <meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="xP/spZLOTJTeuDOxKI1bTKkKqr/ys4XpaesUvzLY50hWT8fDeNUuHyvF4OTonGpe2z6NkNXV12OsQfbf/C7zcw==" />

  <script async src="js/analytics.js"></script>

</head>

<body class="room-editor editor state-htmlOn-cssOn-jsOn preload prelayout
  layout-top
    logged-out
">
  <svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" display="none"><symbol id="activity" viewbox="0 0 172.6 189.1"><path fill="#FFF" d="M170.4 144.3c.6-12.6-3.5-23-11.5-32.1-12.4-14.2-19.6-30.7-21.7-49.5-.8-6.8-.6-13.8-1.8-20.5C130.7 14.9 105-2.5 78.9.9c-21.3 2.8-40.5 21-43.1 42.2C35 50.4 35 57.8 34 65c-2.7 18.7-10.6 35.1-23.1 49.3-7.5 8.5-10.6 18.6-9.7 30h169.2z"/><path d="M170.4 144.3H1.2c-.9-11.4 2.2-21.5 9.7-30C23.3 100.1 31.3 83.7 34 65c1-7.3 1-14.7 1.9-21.9C38.4 21.9 57.7 3.7 78.9.9c26.1-3.4 51.7 14 56.4 41.3 1.2 6.7 1 13.7 1.8 20.5 2.1 18.7 9.4 35.3 21.7 49.5 8.1 9.2 12.1 19.5 11.6 32.1zM64.9 161.8c-.6 2.1-.8 4.4-.7 6.7.6 10.6 9.1 19.3 19.7 19.9 12.3.8 22.4-9 22.4-21.1 0-1.9-.2-3.7-.7-5.4-.4-1.6-1.9-2.7-3.5-2.7H68.4c-1.6 0-3.1 1.1-3.5 2.6z"/></symbol><symbol id="arrow-circle-right" viewbox="-137.8 144.15001 30.2 27.5"><path d="M-108.3 159.8c.1-.1.1-.1.1-.2 0 0 0-.1.1-.1.3-.4.5-.9.5-1.5s-.2-1.1-.5-1.5v-.1l-.1-.1c0-.1-.1-.1-.1-.2l-11.2-11.2c-1-1-2.6-1-3.6 0s-1 2.6 0 3.6l6.9 6.9h-19.1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5h19.1l-6.9 6.9c-1 1-1 2.6 0 3.6s2.6 1 3.6 0l11.2-11.1z"/></symbol><symbol id="arrow-down-mini" viewbox="-122.9 121.1 105.9 61.9"><path d="M-63.2 180.3l43.5-43.5c1.7-1.7 2.7-4 2.7-6.5s-1-4.8-2.7-6.5c-1.7-1.7-4-2.7-6.5-2.7s-4.8 1-6.5 2.7L-69.9 161l-37.2-37.2c-1.7-1.7-4-2.7-6.5-2.7s-4.8 1-6.5 2.6c-1.9 1.8-2.8 4.2-2.8 6.6 0 2.3.9 4.6 2.6 6.5 11.4 11.5 41 41.2 43 43.3l.2.2c3.6 3.6 10.3 3.6 13.9 0z"/></symbol><symbol id="arrow-left-mini" viewbox="-100.9 99.1 61.9 105.9"><path d="M-98.2 158.8l43.5 43.5c1.7 1.7 4 2.7 6.5 2.7s4.8-1 6.5-2.7c1.7-1.7 2.7-4 2.7-6.5s-1-4.8-2.7-6.5l-37.2-37.2 37.2-37.2c1.7-1.7 2.7-4 2.7-6.5s-1-4.8-2.6-6.5c-1.8-1.9-4.2-2.8-6.6-2.8-2.3 0-4.6.9-6.5 2.6-11.5 11.4-41.2 41-43.3 43l-.2.2c-3.6 3.6-3.6 10.3 0 13.9z"/></symbol><symbol id="arrow-right-mini" viewbox="-100.9 99.1 61.9 105.9"><path d="M-41.7 145.3l-43.5-43.5c-1.7-1.7-4-2.7-6.5-2.7s-4.8 1-6.5 2.7c-1.7 1.7-2.7 4-2.7 6.5s1 4.8 2.7 6.5L-61 152l-37.2 37.2c-1.7 1.7-2.7 4-2.7 6.5s1 4.8 2.6 6.5c1.8 1.9 4.2 2.8 6.6 2.8 2.3 0 4.6-.9 6.5-2.6 11.5-11.4 41.2-41 43.3-43l.2-.2c3.6-3.6 3.6-10.4 0-13.9z"/></symbol><symbol id="branch" viewbox="0 0 100 100"><path d="M84.339 62.504a15.805 15.805 0 0 0-11.313 4.721 40.187 40.187 0 0 1-1.578-1.572c-6.965-7.211-14.451-19.189-22.311-29.678-7.977-10.209-16.196-20.413-29.012-20.906H0v14.37h20.126c2.555-.111 6.556 1.993 11.208 6.914 6.961 7.197 14.454 19.171 22.315 29.662 4.822 6.164 9.759 12.293 15.741 16.289 1.99 6.191 7.93 10.688 14.949 10.688 8.648 0 15.661-6.824 15.661-15.244s-7.013-15.244-15.661-15.244zM51.541 29.438h18.986c2.637 4.795 7.831 8.059 13.811 8.059 8.648 0 15.661-6.824 15.661-15.243S92.986 7.01 84.338 7.01c-5.979 0-11.174 3.264-13.811 8.058H36.3c6.007 3.551 10.861 8.924 15.241 14.37z"/></symbol><symbol id="check" viewbox="0 0 100 100"><path d="M34.357 91.176L0 56.604 16.687 39.81l18.157 18.264 48.954-49.25L100 25.125 34.357 91.176z"/></symbol><symbol id="cloud" viewbox="0 0 100 100"><path d="M84.187 44.046c.084-.753.114-1.52.114-2.289 0-13.402-10.814-24.257-24.154-24.257-10.354 0-19.161 6.551-22.599 15.754-2.274-2.508-5.521-4.111-9.166-4.111-6.872 0-12.439 5.59-12.439 12.493 0 .816.084 1.606.239 2.38C7.014 45.534 0 53.472 0 63.095 0 73.824 8.648 82.5 19.323 82.5h61.354C91.351 82.5 100 73.824 100 63.095c0-9.505-6.823-17.38-15.813-19.049z"/></symbol><symbol id="code" viewbox="0 0 100 100"><path d="M28.871 21.5L0 50.004 28.874 78.5l10.497-10.349-18.373-18.147 18.373-18.13-10.5-10.374zm42.258 0L60.633 31.865l18.378 18.131-18.378 18.126 10.496 10.365L100 49.974 71.129 21.5z"/></symbol><symbol id="codepen-box" viewbox="0 0 100 100"><path d="M100 34.2c-.4-2.6-3.3-4-5.3-5.3-3.6-2.4-7.1-4.7-10.7-7.1-8.5-5.7-17.1-11.4-25.6-17.1-2-1.3-4-2.7-6-4-1.4-1-3.3-1-4.8 0-5.7 3.8-11.5 7.7-17.2 11.5L5.2 29C3 30.4.1 31.8 0 34.8c-.1 3.3 0 6.7 0 10v16c0 2.9-.6 6.3 2.1 8.1 6.4 4.4 12.9 8.6 19.4 12.9 8 5.3 16 10.7 24 16 2.2 1.5 4.4 3.1 7.1 1.3 2.3-1.5 4.5-3 6.8-4.5 8.9-5.9 17.8-11.9 26.7-17.8l9.9-6.6c.6-.4 1.3-.8 1.9-1.3 1.4-1 2-2.4 2-4.1V37.3c.1-1.1.2-2.1.1-3.1 0-.1 0 .2 0 0zM54.3 12.3L88 34.8 73 44.9 54.3 32.4V12.3zm-8.6 0v20L27.1 44.8 12 34.8l33.7-22.5zM8.6 42.8L19.3 50 8.6 57.2V42.8zm37.1 44.9L12 65.2l15-10.1 18.6 12.5v20.1zM50 60.2L34.8 50 50 39.8 65.2 50 50 60.2zm4.3 27.5v-20l18.6-12.5 15 10.1-33.6 22.4zm37.1-30.5L80.7 50l10.8-7.2-.1 14.4z"/></symbol><symbol id="comment" viewbox="-405.9 238 56.3 54.8"><path d="M-391 291.4c0 1.5 1.2 1.7 1.9 1.2 1.8-1.6 15.9-14.6 15.9-14.6h19.3c3.8 0 4.4-.8 4.4-4.5v-31.1c0-3.7-.8-4.5-4.4-4.5h-47.4c-3.6 0-4.4.9-4.4 4.5v31.1c0 3.7.7 4.4 4.4 4.4h10.4v13.5z"/></symbol><symbol id="css" viewbox="0 0 51.35 33.95"><title>css</title><path d="M12.66 33.95c-4.49 0-6.93-2.22-6.93-5.6 0-2 .6-3.72.6-5.52 0-2.78-1.71-3.68-4.75-3.68h-.9L0 14.75h1.58c3 0 4.75-.9 4.75-3.63 0-1.84-.6-3.55-.6-5.51C5.73 2.22 8.17 0 12.66 0h7.1v4.4h-3.51c-2 0-2.95.81-2.95 2.35 0 1.71.56 2.82.56 4.75 0 3-1.75 4.7-5.13 5.43V17c3.38.73 5.13 2.39 5.13 5.43 0 1.88-.56 3-.56 4.75 0 1.5.94 2.31 2.95 2.31h3l.75 4.46h-7.34zM49.77 19.15c-3 0-4.75.9-4.75 3.68 0 1.8.6 3.51.6 5.52 0 3.38-2.39 5.6-6.93 5.6H31.6V29.5h3.55c2 0 3-.81 3-2.31 0-1.71-.6-2.86-.6-4.75 0-3 1.75-4.7 5.13-5.43v-.08c-3.38-.73-5.13-2.39-5.13-5.43 0-1.92.6-3 .6-4.75 0-1.54-1-2.35-3-2.35h-3L31.43 0h7.27c4.53 0 6.93 2.22 6.93 5.6 0 2-.6 3.68-.6 5.51 0 2.74 1.71 3.63 4.75 3.63h.9l.68 4.4h-1.59z"/></symbol><symbol id="drag-handle" viewbox="0 0 100 100"><path fill="#606060" d="M0 0h255v11H0z"/><path fill="#E8E8E8" d="M0 11h255v11H0z"/><path fill="#606060" d="M0 43h255v11H0z"/><path fill="#E8E8E8" d="M0 54h255v11H0z"/><g><path fill="#606060" d="M0 86h255v11H0z"/><path fill="#E8E8E8" d="M0 97h255v11H0z"/></g></symbol><symbol id="edit" viewbox="0 0 100 100"><path d="M24.56 92.536L0 100l7.453-24.583c6.356-.244 17.322 10.792 17.107 17.119zM96.617 32.082l-.475.471L67.383 3.766l.472-.472c12.927-12.94 42.016 15.517 28.762 28.788zM61.64 9.516l28.758 28.785-46.303 46.345c-1.222 1.221-2.234.884-2.234.884l2.314-15.356-14.454.074.072-14.468-15.342 2.312s-.34-1.011.883-2.234L61.64 9.516z"/></symbol><symbol id="embed-badge" viewbox="0 0 23 17"><path d="M21 0H2C.9 0 0 .9 0 2v13c0 1.1.9 2 2 2h19c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7.732 6.95a.473.473 0 0 1-.072.256.582.582 0 0 1-.228.2l-1.704.919a2.047 2.047 0 0 1-.33.14 5.458 5.458 0 0 1-.366.106 9.7 9.7 0 0 1 .366.099c.116.034.226.079.33.135l1.704.924c.104.055.18.122.228.198a.46.46 0 0 1 .072.252v1.29L2.872 8.93v-.726l4.86-2.544v1.29zm2.94 5.593a1.078 1.078 0 0 1-.405.497 1.045 1.045 0 0 1-.567.169h-.792l3.408-8.946a.959.959 0 0 1 .366-.468c.164-.108.355-.162.57-.162h.793l-3.374 8.91zm9.36-3.612l-4.86 2.538v-1.29c0-.092.023-.176.071-.252a.594.594 0 0 1 .229-.198l1.704-.924c.1-.056.209-.101.327-.135.117-.034.24-.067.368-.1a5.692 5.692 0 0 1-.368-.104 1.772 1.772 0 0 1-.327-.141l-1.704-.918a.587.587 0 0 1-.229-.201.476.476 0 0 1-.071-.255V5.66l4.86 2.544v.726z"/></symbol><symbol id="eye" viewbox="0 0 30.5 16.5"><path d="M15.3 0C8.9 0 3.3 3.3 0 8.3c3.3 5 8.9 8.3 15.3 8.3s12-3.3 15.3-8.3C27.3 3.3 21.7 0 15.3 0zm0 14.5c-3.4 0-6.2-2.8-6.2-6.2C9 4.8 11.8 2 15.3 2c3.4 0 6.2 2.8 6.2 6.2 0 3.5-2.8 6.3-6.2 6.3z"/></symbol><symbol id="facebook" viewbox="-574 359 75 75"><path d="M-511.499 359h-50c-6.875 0-12.501 5.626-12.501 12.502v49.997c0 6.88 5.626 12.501 12.501 12.501h50c6.876 0 12.499-5.621 12.499-12.502v-49.996c0-6.876-5.624-12.502-12.499-12.502zm1.263 37.5h-12.201v32.813H-536.5V396.5h-6.777v-10.735h6.777v-6.972c0-9.473 4.086-15.105 15.225-15.105h12.835v11.614h-10.483c-3.111-.005-3.497 1.622-3.497 4.652l-.017 5.811h14.063l-1.862 10.735z"/></symbol><symbol id="file-audio" viewbox="0 0 15 15"><title>Audio - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#4DB0D4" width="15" height="15" rx="4"/><path d="M4.744 4.929a.756.756 0 0 1-.37.097H2.757A.756.756 0 0 0 2 5.783v3.308c0 .418.339.756.757.756h1.617c.129 0 .257.034.37.098l2.128 1.196A.757.757 0 0 0 8 10.482v-6.09a.757.757 0 0 0-1.128-.66L4.744 4.93zm4.802-.502c0-.189.172-.331.358-.297 1.274.237 2.229 1.613 2.229 3.241 0 1.628-.955 3.004-2.229 3.241a.303.303 0 0 1-.358-.297.3.3 0 0 1 .245-.295c.998-.18 1.738-1.317 1.738-2.649s-.74-2.468-1.738-2.648a.3.3 0 0 1-.245-.296z" fill="#282828"/></g></symbol><symbol id="file-binary" viewbox="0 0 15 15"><title>file-generic</title><g fill="none" fill-rule="evenodd"><rect fill="#E6DA54" width="15" height="15" rx="4"/><path d="M11 4h1v1h-1V4zM9 6h1v1H9V6zm0-2h1v1H9V4zm2 2h1v1h-1V6zm-1-1h1v1h-1V5zM4 5h1v1H4V5zm1-1h1v1H5V4zm0 7h1v1H5v-1zm4 0h1v1H9v-1zM3 6h1v1H3V6zm2 0h1v1H5V6zM3 4h1v1H3V4zm2 6h5v1H5v-1z" fill="#000"/></g></symbol><symbol id="file-css" viewbox="0 0 15 15"><title>CSS - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#0EBEFF" width="15" height="15" rx="4"/><path d="M8 8.366l1.845 1.065a.507.507 0 0 0 .686-.181.507.507 0 0 0-.186-.685L8.5 7.5l1.845-1.065a.507.507 0 0 0 .186-.685.507.507 0 0 0-.686-.181L8 6.634v-2.13A.507.507 0 0 0 7.5 4c-.268 0-.5.225-.5.503v2.131L5.155 5.569a.507.507 0 0 0-.686.181.507.507 0 0 0 .186.685L6.5 7.5 4.655 8.565a.507.507 0 0 0-.186.685c.134.232.445.32.686.181L7 8.366v2.13c0 .271.224.504.5.504.268 0 .5-.225.5-.503V8.366z" fill="#282828"/></g></symbol><symbol id="file-generic" viewbox="0 0 15 15"><title>Generic - Active</title><rect width="15" height="15" rx="4" ry="4" fill="#78b078"/><path d="M3 2h9v11H3z" fill="none" stroke="#282828"/><path d="M5 4h5v1H5zm0 2h5v1H5zm0 2h5v1H5zm0 2h5v1H5z" fill="#257925"/></symbol><symbol id="file-html" viewbox="0 0 15 15"><title>HTML - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#FF3C41" width="15" height="15" rx="4"/><path d="M10.97 2.29a.563.563 0 0 0-.495-.29.572.572 0 0 0-.488.277l-5.905 9.86a.565.565 0 0 0-.007.574c.102.18.287.289.495.289a.572.572 0 0 0 .488-.277l5.905-9.86a.565.565 0 0 0 .007-.574" fill="#28282B"/></g></symbol><symbol id="file-image" viewbox="0 0 15 15"><title>Image - Active</title><rect width="15" height="15" rx="4" ry="4" fill="#ffb926"/><path d="M5 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1z" fill="#bc2600"/><path d="M11.5 2A1.5 1.5 0 0 1 13 3.5v3A1.5 1.5 0 0 1 11.5 8 1.5 1.5 0 0 1 10 6.5v-3A1.5 1.5 0 0 1 11.5 2z" fill="none" stroke="#651a07" stroke-width="2"/><path d="M11.52 4h-8A1.48 1.48 0 0 0 2 5.48v5A1.48 1.48 0 0 0 3.48 12h8A1.48 1.48 0 0 0 13 10.52v-5A1.48 1.48 0 0 0 11.52 4zM9 8a2 2 0 0 1-4 0 2 2 0 0 1 4 0z" fill="#282828"/></symbol><symbol id="file-js" viewbox="0 0 15 15"><title>JS - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#FCD000" width="15" height="15" rx="4"/><path d="M6.554 3.705a.55.55 0 0 1-.452.543c-1.2.217-2.12 1.61-2.12 3.275 0 1.665.92 3.057 2.12 3.274a.554.554 0 0 1-.205 1.087c-1.733-.322-3.022-2.175-3.022-4.361 0-2.187 1.289-4.04 3.022-4.362a.554.554 0 0 1 .657.544zm1.892 0c0-.347.316-.607.657-.544 1.733.322 3.022 2.175 3.022 4.362 0 2.186-1.289 4.04-3.022 4.361a.554.554 0 0 1-.205-1.087c1.2-.217 2.12-1.61 2.12-3.274 0-1.665-.92-3.058-2.12-3.275a.551.551 0 0 1-.452-.543z" fill="#282828"/></g></symbol><symbol id="file-svg" viewbox="0 0 15 15"><title>SVG - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#AE63E4" width="15" height="15" rx="4"/><path d="M3.5 11.5l2-2m4-4l2-2" stroke="#282828" fill="#000"/><circle fill="#282828" cx="3" cy="12" r="1.5"/><circle fill="#282828" cx="12" cy="3" r="1.5"/><circle stroke="#282828" cx="7.5" cy="7.5" r="2.5"/></g></symbol><symbol id="file-text" viewbox="0 0 15 15"><title>Text - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#47CF73" width="15" height="15" rx="4"/><path fill="#282828" d="M3 3v1h1v2h1V4h1V3z"/><path fill="#1A9C2C" d="M7 3h5v1H7zm0 2h5v1H7zM3 7h9v1H3zm0 2h9v1H3zm0 2h9v1H3z"/></g></symbol><symbol id="file-unsupported" viewbox="0 0 15 15"><title>file-generic</title><g fill="none" fill-rule="evenodd"><rect fill="#E6DA54" width="15" height="15" rx="4"/><path d="M11 4h1v1h-1V4zM9 6h1v1H9V6zm0-2h1v1H9V4zm2 2h1v1h-1V6zm-1-1h1v1h-1V5zM4 5h1v1H4V5zm1-1h1v1H5V4zm0 7h1v1H5v-1zm4 0h1v1H9v-1zM3 6h1v1H3V6zm2 0h1v1H5V6zM3 4h1v1H3V4zm2 6h5v1H5v-1z" fill="#000"/></g></symbol><symbol id="file-video" viewbox="0 0 15 15"><title>Video - Active</title><g fill="none" fill-rule="evenodd"><rect fill="#F52C75" width="15" height="15" rx="4"/><path d="M12.177 6.972L4.943 3.08C4.521 2.851 4 3.144 4 3.607v7.786c0 .464.521.756.943.528l7.234-3.893a.593.593 0 0 0 0-1.056" fill="#282828"/></g></symbol><symbol id="folder" viewbox="0 0 21 15"><path d="M2.004 14.458A1.88 1.88 0 0 1 .125 12.58V1.31C.125.655.656.124 1.31.124h4.964c.452 0 .858.25 1.06.655l.317.635c.245.49.736.793 1.283.793h9.896a1.88 1.88 0 0 1 1.878 1.879v8.493a1.88 1.88 0 0 1-1.878 1.878H2.004z" fill="#CBCBCB"/><path class="folder-front" d="M2.004 14.458A1.88 1.88 0 0 1 .125 12.58V4.087a1.88 1.88 0 0 1 1.879-1.879H18.83a1.88 1.88 0 0 1 1.878 1.879v8.493a1.88 1.88 0 0 1-1.878 1.878H2.004z" fill="#828282"/></symbol><symbol id="gear" viewbox="0 0 100 100"><path d="M87.687 45.077c-.313-2.433-.816-4.807-1.542-7.079l8.145-11.73-5.827-7.515-.094-.123-5.824-7.514-12.955 5.577c-2.041-1.265-4.192-2.362-6.459-3.219L59.42 0H40.586l-3.709 13.474c-2.27.857-4.421 1.955-6.463 3.222l-12.957-5.577-5.825 7.514-.097.124-5.822 7.517 8.146 11.731a39.832 39.832 0 0 0-1.544 7.079L0 52.032l2.08 9.375.033.15 2.08 9.375 14.001.761a39.157 39.157 0 0 0 4.4 5.668l-2.396 14.227 8.416 4.173.138.067L37.169 100l9.309-10.796c1.161.109 2.335.173 3.524.173s2.358-.074 3.52-.184l9.317 10.804 8.415-4.173.141-.066 8.413-4.172-2.396-14.228a39.06 39.06 0 0 0 4.4-5.672l14-.759 2.078-9.375.035-.154L100 52.025l-12.313-6.948zM50.003 34.51c8.435 0 15.272 7.035 15.272 15.719 0 8.679-6.839 15.717-15.272 15.717-8.436 0-15.272-7.038-15.272-15.717 0-8.684 6.838-15.719 15.272-15.719z"/></symbol><symbol id="github" viewbox="-561 347 100 100"><path d="M-561 401.337c0 4.531.424 8.631 1.272 12.298.847 3.667 2.021 6.854 3.521 9.56s3.407 5.086 5.721 7.139a32.693 32.693 0 0 0 7.53 5.037c2.706 1.304 5.795 2.363 9.266 3.178a76.523 76.523 0 0 0 10.636 1.712c3.619.326 7.596.489 11.931.489 4.368 0 8.362-.163 11.98-.489 3.619-.326 7.172-.897 10.66-1.712s6.593-1.874 9.315-3.178 5.249-2.983 7.58-5.037a27.121 27.121 0 0 0 5.77-7.139c1.516-2.705 2.697-5.892 3.545-9.56.848-3.668 1.271-7.767 1.271-12.298 0-8.085-2.706-15.078-8.117-20.978.293-.782.562-1.671.807-2.665s.473-2.412.685-4.254c.212-1.842.13-3.969-.245-6.381-.375-2.413-1.068-4.874-2.079-7.384l-.733-.147c-.522-.098-1.378-.073-2.567.073-1.189.146-2.575.44-4.156.88-1.581.44-3.619 1.288-6.112 2.543-2.494 1.255-5.126 2.828-7.897 4.719-4.759-1.304-11.296-1.956-19.609-1.956-8.28 0-14.8.652-19.56 1.956-2.771-1.891-5.42-3.464-7.946-4.719-2.526-1.255-4.539-2.103-6.039-2.543-1.499-.44-2.901-.725-4.205-.856-1.304-.13-2.127-.171-2.47-.122a4.87 4.87 0 0 0-.807.171c-1.011 2.51-1.703 4.971-2.078 7.384-.375 2.412-.456 4.54-.245 6.381.212 1.842.44 3.26.685 4.254.245.994.513 1.883.807 2.665-5.412 5.901-8.117 12.893-8.117 20.978v.001zm12.274 12.274c0-4.694 2.135-8.998 6.406-12.91 1.271-1.174 2.755-2.062 4.45-2.665 1.695-.603 3.61-.945 5.746-1.027a63.936 63.936 0 0 1 6.137.049c1.956.114 4.368.269 7.237.464 2.869.196 5.346.293 7.433.293 2.087 0 4.564-.098 7.433-.293a742.02 742.02 0 0 1 7.237-.464 63.932 63.932 0 0 1 6.137-.049c2.135.082 4.05.424 5.746 1.027 1.695.603 3.178 1.491 4.45 2.665 4.271 3.847 6.406 8.15 6.406 12.91 0 2.804-.351 5.289-1.052 7.457-.701 2.168-1.597 3.985-2.69 5.452-1.092 1.467-2.608 2.714-4.548 3.741-1.94 1.027-3.83 1.817-5.672 2.372-1.842.554-4.206.986-7.091 1.296s-5.461.497-7.726.562c-2.266.065-5.143.098-8.631.098-3.488 0-6.365-.033-8.631-.098s-4.841-.253-7.726-.562c-2.885-.31-5.248-.742-7.09-1.296-1.842-.554-3.733-1.345-5.672-2.372-1.94-1.027-3.456-2.274-4.548-3.741s-1.989-3.284-2.689-5.452c-.701-2.168-1.051-4.654-1.051-7.457h-.001zm50.226-.986c0-5.178 2.798-9.375 6.25-9.375s6.25 4.197 6.25 9.375-2.798 9.375-6.25 9.375-6.25-4.197-6.25-9.375zm-37.5 0c0-5.178 2.798-9.375 6.25-9.375s6.25 4.197 6.25 9.375-2.798 9.375-6.25 9.375-6.25-4.197-6.25-9.375z"/></symbol><symbol id="google-plus" viewbox="-600 386 22 22"><path d="M-581.663 386h-14.701c-2.022 0-3.636 1.671-3.636 3.693v14.617c0 2.072 1.614 3.69 3.636 3.69h14.701a3.656 3.656 0 0 0 3.663-3.69v-14.617c0-2.022-1.641-3.693-3.663-3.693zm-3.212.688v3.438h-3.438v-3.438h3.438zm-4.812 0v3.438h-3.438v-3.438h3.438zm-9.625 3.437v-.432c0-1.657 1.323-3.005 2.949-3.005h1.864v3.438h-4.813v-.001zm15.812 9.625h-4.125v4.125h-2.75v-4.125h-4.125V397h4.125v-4.125h2.75V397h4.125v2.75zm4.813-9.625h-4.813v-3.438h1.837c1.641 0 2.975 1.348 2.975 3.005v.432l.001.001z"/></symbol><symbol id="grid-12" viewbox="-60.74074 20.40741 74.14815 101.39815"><path d="M-47.704 20.407h-8.666a4.332 4.332 0 0 0-4.37 4.37v8.742c0 2.37 1.925 4.37 4.37 4.37h8.74c2.37 0 4.37-1.926 4.37-4.37v-8.741c-.073-2.445-2-4.37-4.444-4.37zm0 28.297h-8.666c-2.37 0-4.37 1.926-4.37 4.37v8.74c0 2.371 1.925 4.371 4.37 4.371h8.74c2.37 0 4.37-1.926 4.37-4.37v-8.74c-.073-2.371-2-4.371-4.444-4.371zm0 28.37h-8.666c-2.37 0-4.37 1.926-4.37 4.37v8.741c0 2.37 1.925 4.37 4.37 4.37h8.74c2.37 0 4.37-1.925 4.37-4.37v-8.74c-.073-2.445-2-4.37-4.444-4.37zm28.37-56.667h-8.74c-2.37 0-4.37 1.926-4.37 4.37v8.742c0 2.37 1.925 4.37 4.37 4.37h8.74c2.371 0 4.371-1.926 4.371-4.37v-8.741c0-2.445-2-4.37-4.37-4.37zm0 28.297h-8.74c-2.37 0-4.37 1.926-4.37 4.37v8.74c0 2.371 1.925 4.371 4.37 4.371h8.74c2.371 0 4.371-1.926 4.371-4.37v-8.74c0-2.371-2-4.371-4.37-4.371zm0 28.37h-8.74c-2.37 0-4.37 1.926-4.37 4.37v8.741c0 2.37 1.925 4.37 4.37 4.37h8.74c2.371 0 4.371-1.925 4.371-4.37v-8.74c0-2.445-2-4.37-4.37-4.37zM8.964 20.407H.296c-2.37 0-4.37 1.926-4.37 4.37v8.742c0 2.37 1.926 4.37 4.37 4.37h8.741c2.37 0 4.37-1.926 4.37-4.37v-8.741c-.074-2.445-2-4.37-4.444-4.37zm0 28.297H.296c-2.37 0-4.37 1.926-4.37 4.37v8.74c0 2.371 1.926 4.371 4.37 4.371h8.741c2.37 0 4.37-1.926 4.37-4.37v-8.74c-.074-2.371-2-4.371-4.444-4.371zm0 28.37H.296c-2.37 0-4.37 1.926-4.37 4.37v8.741c0 2.37 1.926 4.37 4.37 4.37h8.741c2.37 0 4.37-1.925 4.37-4.37v-8.74c-.074-2.445-2-4.37-4.444-4.37zm-56.667 27.25h-8.666c-2.37 0-4.37 1.926-4.37 4.37v8.741c0 2.37 1.925 4.37 4.37 4.37h8.74c2.37 0 4.37-1.925 4.37-4.37v-8.74c-.073-2.445-2-4.37-4.444-4.37zm28.37 0h-8.74c-2.37 0-4.37 1.926-4.37 4.37v8.741c0 2.37 1.925 4.37 4.37 4.37h8.74c2.371 0 4.371-1.925 4.371-4.37v-8.74c0-2.445-2-4.37-4.37-4.37zm28.297 0H.296c-2.37 0-4.37 1.926-4.37 4.37v8.741c0 2.37 1.926 4.37 4.37 4.37h8.741c2.37 0 4.37-1.925 4.37-4.37v-8.74c-.074-2.445-2-4.37-4.444-4.37z"/></symbol><symbol id="grid-6" viewbox="-60.74074 20.40741 74.14815 45.77778"><path d="M-47.704 20.407h-8.666a4.332 4.332 0 0 0-4.37 4.37v8.742c0 2.37 1.925 4.37 4.37 4.37h8.74c2.37 0 4.37-1.926 4.37-4.37v-8.741c-.073-2.445-2-4.37-4.444-4.37zM-47.704 48.704h-8.666c-2.37 0-4.37 1.926-4.37 4.37v8.74c0 2.371 1.925 4.371 4.37 4.371h8.74c2.37 0 4.37-1.926 4.37-4.37v-8.74c-.073-2.371-2-4.371-4.444-4.371zM-19.333 20.407h-8.741c-2.37 0-4.37 1.926-4.37 4.37v8.742c0 2.37 1.925 4.37 4.37 4.37h8.74c2.371 0 4.371-1.926 4.371-4.37v-8.741c0-2.445-2-4.37-4.37-4.37zM-19.333 48.704h-8.741c-2.37 0-4.37 1.926-4.37 4.37v8.74c0 2.371 1.925 4.371 4.37 4.371h8.74c2.371 0 4.371-1.926 4.371-4.37v-8.74c0-2.371-2-4.371-4.37-4.371zM8.963 20.407H.296c-2.37 0-4.37 1.926-4.37 4.37v8.742c0 2.37 1.926 4.37 4.37 4.37h8.741c2.37 0 4.37-1.926 4.37-4.37v-8.741c-.074-2.445-2-4.37-4.444-4.37zM8.963 48.704H.296c-2.37 0-4.37 1.926-4.37 4.37v8.74c0 2.371 1.926 4.371 4.37 4.371h8.741c2.37 0 4.37-1.926 4.37-4.37v-8.74c-.074-2.371-2-4.371-4.444-4.371z"/></symbol><symbol id="grid" viewbox="0 0 100 100"><path d="M0 0h23.81v23.81H0zM38.095 0h23.809v23.81H38.095zM76.19 0H100v23.81H76.19zM0 38.095h23.81v23.809H0zM38.095 38.095h23.809v23.809H38.095zM76.19 38.095H100v23.809H76.19zM0 76.19h23.81V100H0zM38.095 76.19h23.809V100H38.095zM76.19 76.19H100V100H76.19z"/></symbol><symbol id="heart" viewbox="-475.95303 277.92847 100 86.80724"><path d="M-390.717 280.6c-12.944-5.753-29.483 0-35.236 12.225-5.753-12.944-23.012-18.697-35.236-12.225-13.663 6.472-20.135 22.293-9.349 41.708 7.91 13.663 21.574 23.73 44.585 42.428 23.73-18.697 37.394-28.765 44.585-42.428 10.786-18.696 4.314-35.236-9.349-41.708z"/></symbol><symbol id="help" viewbox="0 0 100 100"><path d="M75 0H25C11.19 0 0 11.193 0 25v50c0 13.802 11.19 25 25 25h50c13.811 0 25-11.198 25-25V25c0-13.807-11.189-25-25-25zM57.203 85.067H41.504V72.542h15.699v12.525zm16.154-43.026c-.84 2.066-1.873 3.834-3.102 5.298a20.59 20.59 0 0 1-4.101 3.751 91.479 91.479 0 0 0-4.249 3.101c-1.333 1.034-1.553 2.214-2.596 3.547-1.025 1.335-.977 3.004-.977 5.006v3.924H41.668v-4.623c0-2.864 1.366-5.265 2.27-7.202.896-1.935 2.255-3.581 3.459-4.947 1.196-1.367 2.62-2.556 3.955-3.557 1.327-.993 2.637-1.993 3.776-2.995 1.123-1.001 2.083-2.1 2.783-3.304.7-1.197 1.043-2.694.977-4.5 0-3.06-.74-5.33-2.245-6.795-1.498-1.465-3.582-2.206-6.25-2.206-1.8 0-3.337.351-4.639 1.05a9.172 9.172 0 0 0-3.199 2.808c-.837 1.163-1.448 3.593-1.847 5.156-.407 1.57-.602 6.115-.602 6.115H25.399c.073-8.333.684-7.963 1.855-10.965 1.164-2.995 2.8-6.132 4.899-8.33 2.099-2.197 4.63-4.179 7.601-5.417a25.782 25.782 0 0 1 9.945-1.977c4.736 0 8.683.581 11.856 1.876 3.167 1.302 5.713 2.889 7.65 4.817 1.929 1.937 3.312 4.004 4.149 6.234.831 2.237 1.245 4.313 1.245 6.242.002 3.206-.412 5.827-1.242 7.893z"/></symbol><symbol id="html" viewbox="0 0 53.06 34.99"><title>html</title><path d="M51.84 20.73c-.09 0-.09.09 0 0l-13 13a4.46 4.46 0 0 1-6.31-6.31l9.76-9.76-9.8-9.89a4.46 4.46 0 1 1 6.31-6.31l12.87 12.88a.08.08 0 0 1 .09.09A4.38 4.38 0 0 1 53 16.76a.65.65 0 0 0 .09.43v.35a4 4 0 0 1-1.25 3.19zm-39.92-2.16l8.81 8.81a4.46 4.46 0 1 1-6.31 6.31L1.55 20.82s-.17 0-.17-.09A3.71 3.71 0 0 1 0 18.4c0-.26.09-.52.09-.86a4.67 4.67 0 0 1 1.38-3.19.08.08 0 0 0 .09-.09l13-13a4.46 4.46 0 1 1 6.26 6.34L11 17.62z"/></symbol><symbol id="icon-new-pen" viewbox="0 0 20 20"><path d="M0 9.002C0 8.45.455 8 .992 8h18.016c.548 0 .992.456.992 1.002v9.996c0 .553-.455 1.002-.992 1.002H.992C.444 20 0 19.544 0 18.998V9.002zm0-8C0 .45.451 0 .99 0h4.02A.99.99 0 0 1 6 1.003v4.994C6 6.551 5.549 7 5.01 7H.99A.99.99 0 0 1 0 5.997V1.003zm7 0C7 .45 7.451 0 7.99 0h4.02A.99.99 0 0 1 13 1.003v4.994C13 6.551 12.549 7 12.01 7H7.99A.99.99 0 0 1 7 5.997V1.003zm7 0C14 .45 14.451 0 14.99 0h4.02A.99.99 0 0 1 20 1.003v4.994C20 6.551 19.549 7 19.01 7h-4.02A.99.99 0 0 1 14 5.997V1.003z"/></symbol><symbol id="icon-new-post" viewbox="0 0 20 20"><path d="M0 5c0-.552.455-1 .992-1h18.016c.548 0 .992.445.992 1v14c0 .552-.455 1-.992 1H.992A.994.994 0 0 1 0 19V5zM0 1C0 .447.455 0 .992 0h18.016c.548 0 .992.443.992.999v1.002c0 .552-.455.999-.992.999H.992A.992.992 0 0 1 0 2.001V.999z"/></symbol><symbol id="icon-new-project" viewbox="0 0 20 20"><path d="M7 .995C7 .445 7.447 0 7.999 0H19c.552 0 .999.456.999.995v8.01c0 .55-.447.995-.999.995H8C7.447 10 7 9.544 7 9.005V.995zm0 11.003c0-.551.447-.998.999-.998H19c.552 0 .999.446.999.998v7.004c0 .551-.447.998-.999.998H8A.998.998 0 0 1 7 19.002v-7.004zM0 .992C0 .444.451 0 .99 0h4.02c.546 0 .99.455.99.992v18.016a.996.996 0 0 1-.99.992H.99a.999.999 0 0 1-.99-.992V.992z"/></symbol><symbol id="icon-person" viewbox="0 0 71 89"><title>icon-person</title><path d="M67.783 66.757c-3.771-5.87-8.347-9.685-14.883-11.845 0 0-4.932-2.547-17.825-2.547-12.894 0-17.824 2.547-17.824 2.547C10.713 57.09 6.14 60.887 2.36 66.757.857 69.067.056 73.716 0 76.195c.02.645 0 1.391 0 2.14v4.28-2.954c0 4.734 3.216 8.568 7.188 8.568h55.756c3.972 0 7.188-3.834 7.188-8.568v2.955-4.28c0-.75-.01-1.496 0-2.14-.048-2.48-.86-7.129-2.35-9.439m-52.37-46.875c0 10.972 6.818 27.097 19.653 27.097 12.62 0 19.646-16.125 19.646-27.097C54.711 8.91 45.913 0 35.065 0 24.21 0 15.41 8.91 15.41 19.882"/></symbol><symbol id="icon-team" viewbox="0 0 168 99"><title>icon-team</title><path d="M117.145 76.778c-3.771-5.87-8.347-9.685-14.883-11.845 0 0-4.932-2.547-17.825-2.547-12.893 0-17.824 2.547-17.824 2.547-6.538 2.177-11.111 5.975-14.892 11.845-1.502 2.31-2.303 6.959-2.359 9.438.02.645 0 1.391 0 2.14v4.28-2.954c0 4.734 3.216 8.568 7.188 8.568h55.756c3.972 0 7.188-3.834 7.188-8.568v2.955-4.28c0-.75-.01-1.496 0-2.14-.048-2.48-.86-7.13-2.349-9.439M64.773 29.903C64.773 40.875 71.592 57 84.427 57c12.62 0 19.646-16.125 19.646-27.097 0-10.972-8.798-19.882-19.646-19.882-10.855 0-19.654 8.91-19.654 19.882M62.43 60.14c-3.17-4.033-6.97-6.809-12.062-8.483 0 0-4.611-2.388-16.657-2.388-12.053 0-16.664 2.388-16.664 2.388-6.111 2.036-10.385 5.574-13.912 11.066-1.396 2.16-2.15 6.506-2.207 8.825.02.606 0 1.307 0 2.007v1.241c0 4.421 3.008 7.998 6.724 7.998h33.653c.48-2.801 1.33-5.877 2.537-7.743 4.725-7.356 10.46-12.129 18.589-14.911zM33.496 43.911c11.79 0 18.364-15.073 18.364-25.326C51.86 8.333 43.636 0 33.496 0 23.348 0 15.124 8.333 15.124 18.585c0 10.253 6.367 25.326 18.372 25.326zM106.147 60.14c3.17-4.033 6.97-6.809 12.062-8.483 0 0 4.614-2.388 16.658-2.388 12.053 0 16.664 2.388 16.664 2.388 6.111 2.036 10.385 5.574 13.912 11.066 1.396 2.16 2.151 6.506 2.207 8.825-.02.606 0 1.307 0 2.007v1.241c0 4.421-3.009 7.998-6.724 7.998h-33.653c-.48-2.801-1.328-5.877-2.535-7.743-4.735-7.356-10.46-12.129-18.591-14.911zM134.532 43.911c-11.79 0-18.364-15.073-18.364-25.326C116.168 8.333 124.394 0 134.532 0c10.148 0 18.371 8.333 18.371 18.585 0 10.253-6.364 25.326-18.371 25.326z"/></symbol><symbol id="lock" viewbox="0 0 100 125"><path d="M79.244 100H20.757a3.773 3.773 0 0 1-3.774-3.775V58.113a3.773 3.773 0 0 1 3.774-3.773h3.773V38.191c0-14.066 11.403-25.47 25.471-25.47 14.065 0 25.47 11.403 25.47 25.47V54.34h3.773a3.773 3.773 0 0 1 3.773 3.773v38.111A3.773 3.773 0 0 1 79.244 100zM63.482 38.945c0-7.445-6.037-13.48-13.481-13.48-7.446 0-13.481 6.035-13.481 13.48V54.34h26.963V38.945z"/></symbol><symbol id="mag" viewbox="0 0 56.7 56.7"><path d="M42.8 7.3C33-2.4 17.1-2.4 7.3 7.3c-9.8 9.8-9.8 25.7 0 35.5 8.7 8.7 22.2 9.7 32 2.9l9.6 9.6c1.8 1.8 4.7 1.8 6.4 0 1.8-1.8 1.8-4.7 0-6.4l-9.6-9.6c6.8-9.8 5.8-23.3-2.9-32zm-6.2 29.3c-6.4 6.4-16.7 6.4-23.1 0s-6.4-16.7 0-23.1c6.4-6.4 16.7-6.4 23.1 0 6.4 6.4 6.4 16.8 0 23.1z"/></symbol><symbol id="menu" viewbox="0 0 100 100"><path d="M0 3.415h100v22.532H0zM0 38.734h100v22.532H0zM0 74.053h100v22.532H0z"/></symbol><symbol id="octocat" viewbox="0 0 250 243.83"><title>octocat</title><path d="M125 0a125 125 0 0 0-39.5 243.61c6.25 1.15 8.53-2.71 8.53-6 0-3-.11-10.83-.17-21.26-34.77 7.55-42.11-16.76-42.11-16.76-5.68-14.44-13.88-18.28-13.88-18.28-11.35-7.76.86-7.6.86-7.6 12.54.88 19.15 12.88 19.15 12.88C69 205.67 87.13 200.16 94.25 197c1.14-8.08 4.36-13.59 7.94-16.71-27.76-3.15-56.94-13.88-56.94-61.78a48.32 48.32 0 0 1 12.86-33.59c-1.29-3.16-5.57-15.87 1.23-33.08 0 0 10.5-3.36 34.37 12.81a118.48 118.48 0 0 1 62.59 0c23.86-16.18 34.34-12.81 34.34-12.81 6.82 17.21 2.53 29.92 1.24 33.08a48.24 48.24 0 0 1 12.85 33.54c0 48-29.23 58.59-57.07 61.68 4.49 3.86 8.49 11.49 8.49 23.15 0 16.71-.15 30.19-.15 34.29 0 3.34 2.25 7.23 8.6 6A125 125 0 0 0 125 0z" fill="#181616" fill-rule="evenodd"/></symbol><symbol id="pop-out" viewbox="0 0 95.74 91.69"><title>pop-out</title><path d="M46.591 35.398l26.7-26.7 12.523 12.523-26.7 26.7z"/><path d="M93.03 37L58.35 1.5l35.08.41-.4 35.09zM95.73 91.69H0V0h47.87v13H13v65.69h69.74V45.85h12.99v45.84z"/></symbol><symbol id="rerun" viewbox="0 0 100 100"><path d="M55.702 50.002L77.85 72.324 100 50.002l-9.173-9.249-6.611 6.668C82.878 25.187 64.56 7.5 42.169 7.5 18.916 7.5 0 26.567 0 50.002 0 73.436 18.917 92.5 42.169 92.5h16.218V79.424H42.169c-16.102 0-29.193-13.197-29.193-29.421 0-16.229 13.092-29.426 29.193-29.426 15.08 0 27.37 11.615 28.892 26.41l-6.184-6.233-9.175 9.248z"/></symbol><symbol id="rss" viewbox="0 0 100 100"><path d="M7.336 62.163A6.166 6.166 0 0 0 0 68.216v25.617A6.167 6.167 0 0 0 6.166 100h25.616a6.165 6.165 0 0 0 6.054-7.341c-2.96-15.281-15.216-27.539-30.5-30.496z"/><path d="M6.764 30.957a6.144 6.144 0 0 0-4.739 1.571A6.161 6.161 0 0 0 0 37.096v3.098a6.17 6.17 0 0 0 5.536 6.136c25.302 2.59 45.544 22.831 48.136 48.132a6.168 6.168 0 0 0 6.135 5.539h3.098a6.17 6.17 0 0 0 6.137-6.763C65.841 60.349 39.65 34.158 6.764 30.957z"/><path d="M99.986 93.431C96.732 43.428 56.568 3.268 6.565.012A6.163 6.163 0 0 0 0 6.167v3.088a6.167 6.167 0 0 0 5.752 6.155c42.113 2.832 76.006 36.726 78.839 78.84a6.167 6.167 0 0 0 6.151 5.75h3.091a6.165 6.165 0 0 0 6.153-6.569z"/></symbol><symbol id="share" viewbox="0 0 100 100"><path d="M75 46.226v15.096l25-25.161L75 11v12.581c-38.25.25-37.5 37.742-37.5 37.742S51.126 42.477 75 46.226zm-20-32.71H7.5c-6.15 0-7.5 1.761-7.5 7.549v60.387C0 87.718 1.499 89 7.5 89H80c6.025 0 7.5-1.133 7.5-7.548v-20.13L75 72.117v4.302H12.5V26.097h30L55 13.516z"/></symbol><symbol id="sort-down" viewbox="0 0 100 100"><path fill="#FFF" d="M100 54l-50 46L0 54z"/><path fill="#727373" d="M0 46L50 0l50 46z"/></symbol><symbol id="sort-up" viewbox="0 0 100 100"><path fill="#FFF" d="M0 46L50 0l50 46z"/><path fill="#727373" d="M100 54l-50 46L0 54z"/></symbol><symbol id="sort" viewbox="0 0 100 100"><path fill="#727373" d="M0 46L50 0l50 46zM100 54l-50 46L0 54z"/></symbol><symbol id="spinner" viewbox="0 0 190 190"><title>spinner</title><circle class="a" cx="94.57" cy="11.57" r="11.57"/><circle class="a" cx="94.57" cy="178.43" r="11.57"/><circle class="a" cx="178.43" cy="95.49" r="11.57"/><circle class="a" cx="11.57" cy="95.49" r="11.57"/><circle class="a" cx="137.94" cy="24.07" r="11.57" transform="rotate(-59.3 138.287 23.966)"/><circle class="a" cx="52.36" cy="166.9" r="11.57" transform="rotate(-59.48 52.36 166.904)"/><circle class="a" cx="165.1" cy="139.35" r="11.57" transform="rotate(-59.48 165.1 139.353)"/><circle class="a" cx="21.43" cy="55.89" r="11.57" transform="rotate(-59.48 21.432 55.892)"/><circle class="a" cx="166.72" cy="52.36" r="11.57" transform="rotate(-30.7 164.832 52.326)"/><circle class="a" cx="23.61" cy="137.45" r="11.57" transform="rotate(-30.34 23.607 137.456)"/><circle class="a" cx="135.97" cy="167.48" r="11.57" transform="rotate(-30.34 135.968 167.485)"/><circle class="a" cx="50.96" cy="24.53" r="11.57" transform="rotate(-30.34 50.959 24.527)"/></symbol><symbol id="star" viewbox="0 0 89 84.64"><title>star</title><path d="M44.5 0l11.51 30.95L89 32.33 63.12 52.84 72 84.64 44.5 66.37 17 84.64l8.88-31.8L0 32.33l32.99-1.38L44.5 0z"/></symbol><symbol id="tv" viewbox="0 0 64.3 66.07"><title>tv</title><path d="M60.27 62.06H4V20.2h56.27v41.86zm2-45.87H36.38l6.9-6.9a1.57 1.57 0 1 0-2.23-2.23l-8.66 8.66L17.12.46a1.57 1.57 0 1 0-2.22 2.23l13.49 13.49H2a2 2 0 0 0-2 2v45.88a2 2 0 0 0 2 2h60.29a2 2 0 0 0 2-2V18.19a2 2 0 0 0-2.01-2.01z"/><rect x="9.12" y="25.24" width="39.22" height="31.76" rx="1.28" ry="1.28"/><path d="M56.74 29.29a2.38 2.38 0 0 1-4.76 0 2.38 2.38 0 1 1 4.76 0M56.74 36.35a2.38 2.38 0 0 1-4.76 0 2.38 2.38 0 0 1 4.76 0"/></symbol><symbol id="twitter" viewbox="0 0 100 100"><path d="M100.001 17.942a39.965 39.965 0 0 1-11.783 3.339c4.236-2.624 7.49-6.779 9.021-11.73a40.289 40.289 0 0 1-13.026 5.146C80.47 10.575 75.138 8 69.234 8c-11.33 0-20.518 9.494-20.518 21.205 0 1.662.183 3.281.533 4.833-17.052-.884-32.168-9.326-42.288-22.155a21.637 21.637 0 0 0-2.778 10.659c0 7.357 3.622 13.849 9.127 17.65a19.94 19.94 0 0 1-9.293-2.651c-.002.089-.002.178-.002.268 0 10.272 7.072 18.845 16.458 20.793a19.939 19.939 0 0 1-9.264.365c2.609 8.424 10.187 14.555 19.166 14.726-7.021 5.688-15.867 9.077-25.48 9.077A40.59 40.59 0 0 1 0 82.473C9.08 88.491 19.865 92 31.449 92c37.737 0 58.374-32.312 58.374-60.336 0-.92-.02-1.834-.059-2.743a42.547 42.547 0 0 0 10.237-10.979z"/></symbol><symbol id="user" viewbox="-255 347 100 100"><path d="M-205 352c-24.9 0-45 20.1-45 45s20.1 45 45 45 45-20.1 45-45-20.1-45-45-45zm-26 72.4c1.8-.8 3.6-1.4 5.5-1.9 5.2-1.2 8.3-2.9 9.3-5.1.8-1.7.3-4-1.2-6.9-9.6-17.7-7.9-27.7-4.8-32.9 3.1-5.3 9.1-8.2 16.7-8.2s13.5 2.9 16.6 8.1c3.1 5.2 4.8 15.2-4.7 33-1.6 3-2 5.3-1.2 7 1 2.1 4.1 3.8 9.3 5 1.8.4 4 1.1 6.3 2.1-6.7 6.3-15.8 10.1-25.7 10.1-10.2.1-19.3-3.9-26.1-10.3z"/></symbol><symbol id="viewswitcher" viewbox="-703.9 491.1 31.7 25.3"><path d="M-688.1 499.6c-4.3 0-8.1 2.2-10.4 5.6 2.2 3.4 6 5.6 10.4 5.6 4.3 0 8.1-2.2 10.4-5.6-2.2-3.3-6-5.6-10.4-5.6zm0 9.9c-2.3 0-4.2-1.9-4.2-4.2-.1-2.4 1.8-4.3 4.2-4.3 2.3 0 4.2 1.9 4.2 4.2 0 2.4-1.9 4.3-4.2 4.3z"/><path d="M-673.4 491.1h-29.3c-.7 0-1.2.5-1.2 1.2v22.9c0 .7.5 1.2 1.2 1.2h29.3c.7 0 1.2-.5 1.2-1.2v-22.9c0-.6-.6-1.2-1.2-1.2zm-28.1 22.9v-17.1h26.8V514h-26.8z"/></symbol><symbol id="x" viewbox="0 0 100 100"><path d="M100 78.905L78.735 100 49.608 71.094 21.263 99.217 0 78.123 28.344 50 0 21.877 21.263.78l28.345 28.125L78.735 0 100 21.094 70.862 50z"/></symbol><symbol id="zip-badge" viewbox="0 0 23 17"><path d="M18.18 5.76a1.221 1.221 0 0 0-.461-.273 2.044 2.044 0 0 0-.663-.096H16v2.772h1.056c.528 0 .908-.126 1.14-.378.232-.252.348-.604.348-1.056 0-.2-.03-.382-.09-.546a1.118 1.118 0 0 0-.273-.423zM21 0H2C.9 0 0 .9 0 2v13c0 1.1.9 2 2 2h19c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM9.208 4.605a.936.936 0 0 1-.051.306c-.034.1-.081.194-.141.282l-4.104 5.862h4.164v1.56H2.332v-.78c0-.093.016-.184.048-.273a.951.951 0 0 1 .132-.25l4.116-5.88h-3.96v-1.56h6.54v.733zm3.145 8.01h-2.041V3.872h2.04v8.741zm8.01-4.686c-.141.364-.355.676-.643.936-.288.26-.654.462-1.095.609-.442.145-.965.218-1.57.218H16v2.922h-2.028V3.873h3.084c.616 0 1.145.073 1.587.219.442.146.806.347 1.092.603.286.256.496.558.633.906.136.348.204.724.204 1.128 0 .436-.07.836-.21 1.2z"/></symbol></svg>

  

<header class="main-header" id="main-header">
  <div class="header-chunk pen-title-area">
    <a href="https://codepen.io/" class="pen-title-home-link">
      <svg class="icon-codepen-box" width="25px" height="25px">
        <use xlink:href="#codepen-box"></use>
      </svg>
    </a>
    <div class="pen-title-text">
      <h1 id="pen-title" class="pen-title">
        <a class="pen-title-link" href="https://codepen.io/ara_node/pen/nuJCG">
            motion graphic typeface
        </a>
      </h1>
      <div class="by">
        A Pen By
          <a class="pen-owner-link" href="/ara_node">
            ara
          </a>
      </div>
    </div>
  </div>

  <div class="header-chunk primary-actions secondary-nav">


    <button id="run" class="button button-editor-outline button run" title="Com/Ctrl - Shift - 5 to Run">
      <svg class="icon-run">
        <use xlink:href="#rerun"></use>
      </svg>
      Run
    </button>



          <button id="fork" class="button button-editor-outline fork-button">
            <svg class="icon-branch" width="16px" height="16px">
              <use xlink:href="#branch"></use>
            </svg>
            Fork
          </button>




      <button id="edit-settings" class='button button-editor-solid'>
        <svg class="icon-gear" width="16px" height="16px">
          <use xlink:href="#gear"></use>
        </svg>
        Settings
      </button>

      <div class="header-chunk view-switcher-area">

  <button class="button button-editor-solid view-switcher-button" data-dropdown="#view-switcher" id="view-switcher-button">
    <svg class="icon-view-switcher">
      <use xlink:href="#viewswitcher"></use>
    </svg>
    Change View
  </button>

  <div class="view-switcher is-dropdown" id="view-switcher" data-dropdown-position="right" role="navigation">

    <h3>Open this Pen in:</h3>

    <nav class="link-list">


          <a id="editor-link" href="https://codepen.io/ara_node/pen/nuJCG" class="view-switcher-row editor-link active">
            Editor View
            <span class="view-meta">
              /pen/
              <span data-href="http://blog.codepen.io/documentation/views/editor-view/" class="learn-more inline-q">
                <svg class="icon-help">
                  <use xlink:href="#help"></use>
                </svg>
              </span>
            </span>
          </a>



          <a id="details-link" href="https://codepen.io/ara_node/details/nuJCG"
            class="view-switcher-row details-link">
            Details View
            <span class="view-meta">
              /details/
              <span data-href="http://blog.codepen.io/documentation/views/details-view/" class="learn-more inline-q">
                <svg class="icon-help">
                  <use xlink:href="#help"></use>
                </svg>
              </span>
            </span>
          </a>



          <a id="full-page-link" href="https://codepen.io/ara_node/full/nuJCG"
            class="view-switcher-row full-page-link">
            Full Page
            <span class="view-meta">
              /full/
              <span data-href="http://blog.codepen.io/documentation/views/full-page-view/" class="learn-more inline-q">
                <svg class="icon-help">
                  <use xlink:href="#help"></use>
                </svg>
              </span>
            </span>
          </a>



          <a id="pres-link" href="https://codepen.io/ara_node/pres/nuJCG" class="view-switcher-row upsell pres-link" data-url="/ajax/upgrades/modal" data-upsell-type="presentation">
              <span class="badge badge-pro">PRO</span>
            Presentation Mode
           <span class="view-meta">
            /pres/
              <span data-href="http://blog.codepen.io/documentation/pro-features/presentation-mode/" class="learn-more inline-q">
                <svg class="icon-help">
                  <use xlink:href="#help"></use>
                </svg>
              </span>
            </span>
          </a>



      <a href="https://app.crossbrowsertesting.com/livetests/run?url=https%3A%2F%2Fcodepen.io%2Fara_node%2Ffull%2FnuJCG" class="view-switcher-row view-switcher-cbt">
        Open on CrossBrowserTesting &rarr;
      </a>

    </nav>

    <hr>

      <h3>Direct Code Links:</h3>

      <div class="share-static share-section">

  <a target="_blank" rel="noopener" href="https://codepen.io/ara_node/pen/nuJCG.html">.html</a>


  <a target="_blank" rel="noopener" href="https://codepen.io/ara_node/pen/nuJCG.css">.css</a>


  <a target="_blank" rel="noopener" href="https://codepen.io/ara_node/pen/nuJCG.js">.js</a>


</div>



    <hr>



      <h3>Editor Layout</h3>



      <div class="editor-layout-buttons">
        <a id="left-layout" href="https://codepen.io/ara_node/pen/nuJCG/left/" class="layout-change-icon" data-layout-type="left">
          <span class="screen-reader-text">Use Left Layout</span>
          <svg class="icon icon-editor-left rotate-cc90" width="20px" height="20px">
            <use xlink:href="#icon-new-pen"></use>
          </svg>
        </a>

        <a id="top-layout" href="https://codepen.io/ara_node/pen/nuJCG/top/" class="layout-change-icon" data-layout-type="top">
          <span class="screen-reader-text">Use Top Layout</span>
          <svg class="icon icon-new-pen" width="20px" height="20px">
            <use xlink:href="#icon-new-pen"></use>
          </svg>
        </a>

        <a id="right-layout" href="https://codepen.io/ara_node/pen/nuJCG/right/" class="layout-change-icon" data-layout-type="right">
          <span class="screen-reader-text">Use Right Layout</span>
          <svg class="icon icon-editor-right rotate-c90" width="20px" height="20px">
            <use xlink:href="#icon-new-pen"></use>
          </svg>
        </a>
      </div>


  </div>

</div>



      <div class="signup-and-login">
  
  <a id="login-button" class="button button-editor-solid login-button" href="https://codepen.io/login">Log In</a>

  <a href="/accounts/signup" class="button button-editor-solid signup-button">Sign Up</a>
  
</div>



  </div>

</header>

  <div class="item-settings-modal pen  item-settings-modal-half" id="item-settings-modal">

  <div class="item-settings-halfs-wrap">


      <div class="settings-modal-left tabs">

        <h2>Pen Settings</h2>

        <nav id="settings-tabs" class="explore-tabs no-mobile-nav">
          <a id="settings-html-tab" href="#settings-html" class="settings-tab-html" data-type="html">HTML</a>
          <a id="settings-css-tab" href="#settings-css" class="settings-tab-css" data-type="css">CSS</a>
          <a id="settings-js-tab" href="#settings-js" class="settings-tab-js" data-type="js">JavaScript</a>
          <a id="settings-behavior-tab" href="#settings-behavior" class="settings-tab-behavior" data-type="behavior">Behavior</a>
        </nav>

        <div class="settings" id="settings-html">
          <form class="settings-row settings-row-1 top-label-form normal-labels preprocessor-choice group">

  <h4>
    <label for="html-preprocessor">HTML Preprocessor</label>
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About HTML Preprocessors</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>HTML preprocessors can make writing HTML more powerful or convenient. For instance, Markdown is designed to be easier to write and read for text documents and you could write a loop in Pug.</p>
      <p><a href="https://blog.codepen.io/documentation/editor/using-html-preprocessors/" target="_blank" rel="noopener">Learn more</a> &middot; <a href="/versions/" target="_blank" rel="noopener">Versions</a></p>
    </div>
  </div>

  <select name="html-preprocessor" id="html-preprocessor" class="fullwidth">
      <option value="none">None</option>
      <option value="haml">Haml</option>
      <option value="markdown">Markdown</option>
      <option value="slim">Slim</option>
      <option value="pug">Pug</option>
  </select>

</form>

<form class="settings-row settings-row-2 top-label-form normal-labels prevent-form-submit" onsubmit="return false;">

  <h4>
    <label for="html-classes">Add Class(es) to &lt;html></label>
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>Adding Classes</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>In CodePen, whatever you write in the HTML editor is what goes within the <code>&lt;body></code> tags in <a target="_blank" rel="noopener" href="https://blog.codepen.io/documentation/features/preview-template/">a basic HTML5 template</a>. So you don't have access to higher-up elements like the <code>&lt;html></code> tag. If you want to add classes there, that can effect the whole document, this is the place to do it.</p>
    </div>
  </div>

  <input type="text" id="html-classes" name="html-classes" class="fullwidth" placeholder="e.g. single post post-1234">

</form>

<form class="settings-row settings-row-3 top-label-form normal-labels">

  <h4>
    <label for="head-content">Stuff for &lt;head></label>
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About the &lt;head></h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>In CodePen, whatever you write in the HTML editor is what goes within the <code>&lt;body></code> tags in <a target="_blank" rel="noopener" href="https://blog.codepen.io/documentation/features/preview-template/">a basic HTML5 template</a>. If you need things in the <code>&lt;head></code> of the document, put that code here.</p>
    </div>
  </div>

  <div class="head-content-wrapper">
    <textarea id="head-content" name="head-content" class="fullwidth is-code head-content" placeholder="e.g. &lt;meta>, &lt;link>, &lt;script>"></textarea>
    <span class="insecure-resource-tooltip">
      <div class="help-flyout-link">
        <span class="icon-help">!</span>
        <div class="help-flyout help-flyout-reverse">
          <svg class="icon-x">
            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#x"></use>
          </svg>
          <h5>Insecure Resource</h5>
          <p>The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.</p>
        </div>
      </div>
    </span>
  </div>

  <button class="button mini-button button-medium" id="meta-tag-insert">↑ Insert the most common viewport meta tag</button>

</form>

        </div>

        <div class="settings" id="settings-css">
          <form class="settings-row settings-row-1 top-label-form normal-labels preprocessor-choice group">

  <h4>
    <label for="css-preprocessor">CSS Preprocessor</label>
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About CSS Preprocessors</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>CSS preprocessors help make authoring CSS easier. All of them offer things like variables and mixins to provide convenient abstractions.</p>
      <p><a href="https://blog.codepen.io/documentation/editor/using-css-preprocessors/" target="_blank">Learn more</a> &middot; <a href="/versions/" target="_blank">Versions</a></p>
    </div>
  </div>

  <select name="css-preprocessor" id="css-preprocessor" class="fullwidth css-preprocessor">
      <option value="none">None</option>
      <option value="less">LESS</option>
      <option value="scss">SCSS</option>
      <option value="sass">Sass</option>
      <option value="stylus">Stylus</option>
      <option value="postcss">PostCSS</option>
  </select>

  <div id="need-an-addon" class="align-right hide">
    <a id="css-need-an-addon-button" href="#0" class="button button-medium mini-button need-an-addon-button">
      Need an add-on?
    </a>
  </div>

  <div class="add-ons add-ons-scss hide" id="add-ons"></div>

</form>

<form id="startercss-options-form" class="settings-row settings-row-2 top-label-form prevent-form-submit" onsubmit="return false;">

  <h4>
    CSS Base
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About CSS Base</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>It's a common practice to apply CSS to a page that styles elements such that they are consistent across all browsers. We offer two of the most popular choices: <a href="https://necolas.github.io/normalize.css/" target="_blank" rel="noopener">normalize.css</a> and a <a href="http://meyerweb.com/eric/tools/css/reset/" target="_blank" rel="noopener">reset</a>. Or, choose <b>Neither</b> and nothing will be applied.</p>
    </div>
  </div>

    <input type="radio" id="startercss-normalize" name="startercss" checked value="normalize">
    <label for="startercss-normalize" class="small-inline">Normalize</label>

    &ensp;
    <input type="radio" id="startercss-reset" name="startercss" checked value="reset">
    <label for="startercss-reset" class="small-inline">Reset</label>

    &ensp;
    <input type="radio" id="startercss-neither" name="startercss" checked value="neither">
    <label for="startercss-neither" class="small-inline">Neither</label>

    &ensp;


</form>

<form id="prefix-options-form" class="settings-row settings-row-3 top-label-form">

  <h4>
    Vendor Prefixing
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About Vendor Prefixing</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>To get the best cross-browser support, it is a common practice to apply vendor prefixes to CSS properties and values that require them to work. For instance <code>-webkit-</code> or <code>-moz-</code>.</p>
      <p>We offer two popular choices: <a href="https://github.com/postcss/autoprefixer" target="blank" rel="noopener">Autoprefixer</a> (which processes your CSS server-side) and <a href="https://leaverou.github.io/prefixfree/" target="_blank" rel="noopener">-prefix-free</a> (which applies prefixes via a script, client-side).</p>
    </div>
  </div>

    <input type="radio" id="prefix-autoprefixer" name="prefix" value="autoprefixer">
    <label for="prefix-autoprefixer" class="small-inline">Autoprefixer</label>

    &ensp;
    <input type="radio" id="prefix-prefixfree" name="prefix" value="prefixfree">
    <label for="prefix-prefixfree" class="small-inline">Prefixfree</label>

    &ensp;
    <input type="radio" id="prefix-neither" name="prefix" value="neither">
    <label for="prefix-neither" class="small-inline">Neither</label>

    &ensp;
</form>

<form id="external-css-resources" class="settings-row settings-row-4 top-label-form prevent-form-submit" onsubmit="return false;">

  <h4>
    Add External CSS
  </h4>

  <p>These stylesheets will be added in this order and before the code you write in the CSS editor. You can also add another Pen here, and it will pull the CSS from it. Try typing "font" or "ribbon" below.</p>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About External Resources</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>You can apply CSS to your Pen from any stylesheet on the web. Just put a URL to it here and we'll apply it, in the order you have them, before the CSS in the Pen itself.</p>
      <p>If the stylesheet you link to has the file extension of a preprocessor, we'll attempt to process it before applying.</p>
      <p>You can also link to another Pen here, and we'll pull the CSS from that Pen and include it. If it's using a matching preprocessor, we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.</p>
      <p><a href="https://blog.codepen.io/documentation/editor/adding-external-resources/" target="_blank" rel="noopener">Learn more</a></p>
    </div>
  </div>

  <div id="css-external-resources" class="external-resource-wrapper">
</div>

<script id="css-external-resources-template" type="text/template">
  <div data-view-id="<%= view_id %>" class="external-resource-url-row <%= insecure_resource %>">

    <span class="move-external-url">
      <svg class="icon-drag-handle">
        <use xlink:href="#drag-handle" />
      </svg>
    </span>

    <input
      id="external-resource-input-<%= view_id %>"
      class="fullwidth css-resource external-resource"
      type="text"
      pattern="^((ftp|http|https):)?\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$"
      name="external-css"
      placeholder="<%= placeholder %>"
      value="<%= url %>"
      data-view-id="<%= view_id %>">

    <span class="insecure-resource-tooltip">
      <div class="help-flyout-link">
        <span class="icon-help">!</span>
        <div class="help-flyout help-flyout-reverse">
          <svg class="icon-x">
            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#x"></use>
          </svg>
          <h5>Insecure Resource</h5>
          <p>The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.</p>
        </div>
      </div>
    </span>

    <span class="remove-external-url external-url-option" data-view-id="<%= view_id %>">
      <svg class="icon-x">
        <use xlink:href="#x" />
      </svg>
    </span>

    <a class="open-external-url external-url-option" target="_blank" rel="noopener" data-view-id="<%= view_id %>" href="<%= url %>">
      <svg class="icon-eye">
        <use xlink:href="#eye" />
      </svg>
    </a>

  </div>
</script>


  <div class="external-resource-actions group">

    Quick-add:
<select id="css-quick-add" class="quick-add-select">
  <option value="none">---</option>

    <option value="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css">Bootstrap 4</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">Bootstrap 3</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.3.0/css/foundation.min.css">Foundation</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">Animate.css</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/css/materialize.min.css">Materialize</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.4.2/css/bulma.min.css">Bulma</option>
</select>

    <span id="add-css-resource" class="button mini-button button-medium add-resource" data-type="css">
      <span data-type="css">+ add another resource</span>
    </span>

  </div>

</form>

        </div>

        <div class="settings" id="settings-js">
          <form class="settings-row settings-row-1 top-label-form normal-labels preprocessor-choice group">

  <h4>
    <label for="js-preprocessor">JavaScript Preprocessor</label>
  </h4>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About JavaScript Preprocessors</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>JavaScript preprocessors can help make authoring JavaScript easier and more convenient. For instance, CoffeeScript can help prevent easy-to-make mistakes and offer a cleaner syntax and Babel can bring ECMAScript 6 features to browsers that only support ECMAScript 5.</p>
      <p><a href="https://blog.codepen.io/documentation/editor/using-js-preprocessors/" target="_blank" rel="noopener">Learn more</a> &middot; <a href="/versions/" target="_blank">Versions</a></p>
    </div>
  </div>

  <select name="js-preprocessor" id="js-preprocessor" class="fullwidth">
      <option value="none">None</option>
      <option value="coffeescript">CoffeeScript</option>
      <option value="livescript">LiveScript</option>
      <option value="typescript">TypeScript</option>
      <option value="babel">Babel</option>
  </select>

</form>

<form id="external-js-resources" class="settings-row external-js-resources settings-row-2 top-label-form prevent-form-submit" onsubmit="return false;">

  <h4>
    Add External JavaScript
  </h4>

  <p>These scripts will run in this order and before the code in the JavaScript editor. You can also link to another Pen here, and it will run the JavaScript from it. Also try typing the name of any popular library.</p>

  <div class="help-flyout-link">
    <svg class="icon-help">
      <use xlink:href="#help"></use>
    </svg>
    <div class="help-flyout help-flyout-reverse">
      <h5>About External Resources</h5>
      <svg class="icon-x">
        <use xlink:href="#x"></use>
      </svg>
      <p>You can apply a script from anywhere on the web to your Pen. Just put a URL to it here and we'll add it, in the order you have them, before the JavaScript in the Pen itself.</p>
      <p>If the script you link to has the file extension of a preprocessor, we'll attempt to process it before applying.</p>
      <p>You can also link to another Pen here, and we'll pull the JavaScript from that Pen and include it. If it's using a matching preprocessor, we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.</p>
      <p><a href="https://blog.codepen.io/documentation/editor/adding-external-resources/" target="_blank">Learn more</a></p>
    </div>
  </div>

  <div id="js-external-resources" class="external-resource-wrapper">
</div>

<script id="js-external-resources-template" type="text/template">
  <div data-view-id="<%= view_id %>" class="external-resource-url-row <%= insecure_resource %>">

    <span class="move-external-url">
      <svg class="icon-drag-handle">
        <use xlink:href="#drag-handle" />
      </svg>
    </span>

    <input
      id="external-resource-input-<%= view_id %>"
      class="fullwidth js-resource external-resource"
      type="text"
      pattern="^((ftp|http|https):)?\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$"
      name="external-js"
      placeholder="<%= placeholder %>"
      value="<%= url %>"
      data-view-id="<%= view_id %>">

    <span class="insecure-resource-tooltip">
      <div class="help-flyout-link">
        <span class="icon-help">!</span>
        <div class="help-flyout help-flyout-reverse">
          <svg class="icon-x">
            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#x"></use>
          </svg>
          <h5>Insecure Resource</h5>
          <p>The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.</p>
        </div>
      </div>
    </span>

    <span class="remove-external-url external-url-option" data-view-id="<%= view_id %>">
      <svg class="icon-x">
        <use xlink:href="#x" />
      </svg>
    </span>

    <a class="open-external-url external-url-option" target="_blank" rel="noopener" data-view-id="<%= view_id %>" href="<%= url %>">
      <svg class="icon-eye">
        <use xlink:href="#eye" />
      </svg>
    </a>

  </div>
</script>

  <div class="external-resource-actions group">

    Quick-add:
<select id="js-quick-add" class="quick-add-select">
  <option value="none">---</option>

    <option value="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js">Angular</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js">Backbone</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js">Bootstrap</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/d3/4.5.0/d3.min.js">D3</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.11.0/ember.min.js">Ember</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js">GreenSock TweenMax</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.6/handlebars.min.js">Handlebars</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js">jQuery</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js">jQuery UI</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js">Lodash</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js">Modernizr</option>
    <option value="https://cdn.polyfill.io/v2/polyfill.min.js">Polyfill.io</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/polymer/0.5.6/polymer.min.js">Polymer</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react.min.js">React</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.2/react-dom.min.js">React DOM</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.4.1/snap.svg-min.js">Snap.svg</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/three.js/84/three.min.js">Three.js</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js">Underscore</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js">Vue</option>
    <option value="https://cdnjs.cloudflare.com/ajax/libs/zepto/1.2.0/zepto.min.js">Zepto</option>
    <option value="https://cdn.zingchart.com/zingchart.min.js">ZingChart</option>
</select>

    <span id="add-js-resource" class="button button-medium mini-button add-resource" data-type="js">
      <span data-type="js">+ add another resource</span>
    </span>
  </div>

</form>
        </div>

        <div class="settings pen-settings-panel" id="settings-behavior">
          <form id="editor-settings-form" class="settings-row settings-row-1 top-label-form prevent-form-submit" onsubmit="return false;">

  <h4>Code Indentation</h4>

  <div>
    <input type="radio" id="indent-with-spaces" name="indent-with" value="spaces" checked>
    <label for="indent-with-spaces" class="small-inline">Spaces</label>

    &nbsp;

    <input type="radio" id="indent-with-tabs" name="indent-with" value="tabs">
    <label for="indent-with-tabs" class="small-inline">Tabs</label>

    &nbsp;&nbsp;&nbsp;

    <input type="range" min="1" max="6" id="tab-size" name="tab-size" value="2" list="tab-width-options">
    <datalist id="tab-width-options">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
    </datalist>
    <label for="tab-size" class="small-inline">Width of Indent</label>
  </div>
</form>

<form class="settings-row settings-row-2 top-label-form prevent-form-submit" onsubmit="return false;">

  <h4>Save Automatically?</h4>

  <div>
    <input type="checkbox" id="auto-save" name="auto-save" checked>
    <label for="auto-save" class="small-inline">Autosave</label>
    <p class="hint">If active, Pens will autosave every 30 seconds after being saved once.</p>
  </div>

</form>

<form class="settings-row settings-row-3 top-label-form prevent-form-submit" onsubmit="return false;">

  <h4>Auto-Updating Preview</h4>

  <div>
    <input type="checkbox" id="auto-run" name="auto-run" checked>
    <label for="auto-run" class="small-inline">Enabled</label>
    <p class="hint">If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.</p>
  </div>

</form>

        </div>


      </div>



    <div class="save-and-close-wrap">
        <input type="button" class="button big button-no-right-margin green" value="Close" id="close-settings">
    </div>

  </div>

</div>



<div class="page-wrap twilight">

  <div class="boxes">

    <div class="top-boxes editor-parent">

      <div class="editor-resizer" title="Double-click to expand."></div>

      <div id="box-html" class="box box-html" data-type="html">

        <div class="powers">
          <div class="powers-drag-handle" title="Double-click to expand."></div>

          <div class="editor-actions-left">
            <button id="settings-pane-html" class="button button-medium mini-button settings-nub" data-type="html" title="Open HTML Settings">
              <svg class="icon-gear">
                <use xlink:href="#gear"></use>
              </svg>
            </button>

            <h2 class="box-title" id="html-editor-title"><span class="box-title-name">HTML</span></h2>
          </div>

          <div class="editor-actions-right">
            <button class="button mini-button button-medium editor-dropdown-button editor-dropdown-button-html" data-dropdown="#editor-dropdown-html">
  <svg class="icon-arrow-down-mini">
    <use xlink:href="#arrow-down-mini"></use>
  </svg>
</button>

            <ul id="editor-dropdown-html" class="link-list is-dropdown editor-dropdown editor-dropdown-html" data-dropdown-position="css" data-dropdown-type="html">
  
    <li>
      <a href="#0" id="html-tidy-code-button" class="tidy-code-button" data-type="html">
        Tidy HTML
      </a>
    </li>
  
    <li>
      <a href="#0" class="view-compiled-button" id="html-view-compiled" data-type="html">
        View Compiled HTML
      </a>
    </li>
  
    <li>
      <a href="#0" class="analyze" id="analyze-html" data-type="html">
        Analyze HTML
      </a>
    </li>
  
    <li class="maximize">
      <a href="#0">
        Maximize HTML Editor
      </a>
    </li>
    
    <li class="minimize">
      <a href="#0">
        Minimize HTML Editor
      </a>
    </li>
    
  </ul>
          </div>

        </div>

        <div class="code-wrap">
          <pre id="html" class="code-box" aria-labeledby="html-editor-title">
            <code>
              
	&lt;canvas id=&quot;canvas&quot; style=&quot;position:absolute; top:0; left:0;&quot;&gt;&lt;/canvas&gt;
	&lt;div id=&quot;buffer&quot; style=&quot;display:none;&quot;&gt;
            </code>
          </pre>
          <div class="error-bar" id="error-bar-html">
            <span class="error-icon" data-type="html">
              !
            </span>
          </div>
        </div>

      </div>

      <div class="editor-resizer" title="Drag to resize.
Double-click to expand."></div>


      <div id="box-css" class="box box-css" data-type="css">

        <div class="powers">
          <div class="powers-drag-handle" title="Drag to resize.
Double-click to expand."></div>

          <div class="editor-actions-left">
            <button id="settings-pane-css" class="button button-medium mini-button settings-nub" data-type="css" title="Open CSS Settings">
              <svg class="icon-gear">
                <use xlink:href="#gear"></use>
              </svg>
            </button>

            <h2 class="box-title" id="css-editor-title"><span class="box-title-name">CSS</span></h2>
          </div>

          <div class="editor-actions-right">
            <button class="button mini-button button-medium editor-dropdown-button editor-dropdown-button-css" data-dropdown="#editor-dropdown-css">
  <svg class="icon-arrow-down-mini">
    <use xlink:href="#arrow-down-mini"></use>
  </svg>
</button>

            <ul id="editor-dropdown-css" class="link-list is-dropdown editor-dropdown editor-dropdown-css" data-dropdown-position="css" data-dropdown-type="css">
  
    <li>
      <a href="#0" id="css-tidy-code-button" class="tidy-code-button" data-type="css">
        Tidy CSS
      </a>
    </li>
  
    <li>
      <a href="#0" class="view-compiled-button" id="css-view-compiled" data-type="css">
        View Compiled CSS
      </a>
    </li>
  
    <li>
      <a href="#0" class="analyze" id="analyze-css" data-type="css">
        Analyze CSS
      </a>
    </li>
  
    <li class="maximize">
      <a href="#0">
        Maximize CSS Editor
      </a>
    </li>
    
    <li class="minimize">
      <a href="#0">
        Minimize CSS Editor
      </a>
    </li>
    
  </ul>
          </div>

        </div>

        <div class="code-wrap">
          <pre id="css" class="code-box" aria-labeledby="css-editor-title">
            <code>
              * {margin:0;}
body {background:#000000;}
            </code>
          </pre>
          <div class="error-bar" id="error-bar-css">
            <span class="error-icon" data-type="css">
              !
            </span>
          </div>
        </div>

      </div>

      <div class="editor-resizer" title="Drag to resize.
Double-click to expand."></div>

      <div id="box-js" class="box box-js " data-type="js">

        <div class="powers">
          <div class="powers-drag-handle" title="Drag to resize.
Double-click to expand."></div>

          <div class="editor-actions-left">
            <button id="settings-pane-js" class="button button-medium mini-button settings-nub" data-type="js" title="Open JS Settings">
              <svg class="icon-gear">
                <use xlink:href="#gear"></use>
              </svg>
            </button>

            <h2 class="box-title" id="js-editor-title"><span class="box-title-name">JS</span></h2>
          </div>

          <div class="editor-actions-right">
            <button class="button mini-button button-medium editor-dropdown-button editor-dropdown-button-js" data-dropdown="#editor-dropdown-js">
  <svg class="icon-arrow-down-mini">
    <use xlink:href="#arrow-down-mini"></use>
  </svg>
</button>

            <ul id="editor-dropdown-js" class="link-list is-dropdown editor-dropdown editor-dropdown-js" data-dropdown-position="css" data-dropdown-type="js">
  
    <li>
      <a href="#0" id="js-tidy-code-button" class="tidy-code-button" data-type="js">
        Tidy JS
      </a>
    </li>
  
    <li>
      <a href="#0" class="view-compiled-button" id="js-view-compiled" data-type="js">
        View Compiled JS
      </a>
    </li>
  
    <li>
      <a href="#0" class="analyze" id="analyze-js" data-type="js">
        Analyze JS
      </a>
    </li>
  
    <li class="maximize">
      <a href="#0">
        Maximize JS Editor
      </a>
    </li>
    
    <li class="minimize">
      <a href="#0">
        Minimize JS Editor
      </a>
    </li>
    
  </ul>
          </div>

        </div>

        <div class="code-wrap">
          <pre id="js" class="code-box" aria-labeledby="js-editor-title">
            <code>
              
var camera = {
	focus : 400,
	self : {
		x : 0,
		y : 0,
		z : 0
	},
	rotate : {
		x : 0,
		y : 0,
		z : 0
	},
	up : {
		x : 0,
		y : 1,
		z : 0
	},
	zoom : 1,
	display : {
		x : window.innerWidth/2,
		y : window.innerHeight/2,
		z : 0
	}
};
var affine = {
	world : {
		size : function(p, size) {
			return {
				x :	p.x * size.x,
				y : p.y * size.y,
				z : p.z * size.z
			}
		},
		rotate: {
			x : function(p, rotate) {
				return {
					x : p.x,
					y : p.y*Math.cos(dtr(rotate.x)) - p.z*Math.sin(dtr(rotate.x)),
					z : p.y*Math.sin(dtr(rotate.x)) + p.z*Math.cos(dtr(rotate.x))
				}
			},
			y : function(p, rotate) {
				return {
					x : p.x*Math.cos(dtr(rotate.y)) + p.z*Math.sin(dtr(rotate.y)),
					y : p.y,
					z : -p.x*Math.sin(dtr(rotate.y)) + p.z*Math.cos(dtr(rotate.y))
				}
			},
			z : function(p, rotate) {
				return {
					x : p.x*Math.cos(dtr(rotate.z)) - p.y*Math.sin(dtr(rotate.z)),
					y : p.x*Math.sin(dtr(rotate.z)) + p.y*Math.cos(dtr(rotate.z)),
					z : p.z
				}
			}
		},
		position : function(p, position) {
			return {
				x : p.x + position.x,
				y : p.y + position.y,
				z : p.z + position.z
			}
		},
	},
	view : {
		point : function(p) {
			return {
				x : p.x - camera.self.x,
				y : p.y - camera.self.y,
				z : p.z - camera.self.z
			}
		},
		x : function(p) {
			return {
				x : p.x,
				y : p.y*Math.cos(dtr(camera.rotate.x)) - p.z*Math.sin(dtr(camera.rotate.x)),
				z : p.y*Math.sin(dtr(camera.rotate.x)) + p.z*Math.cos(dtr(camera.rotate.x))
			}
		},
		y : function(p) {
			return {
				x : p.x*Math.cos(dtr(camera.rotate.y)) + p.z*Math.sin(dtr(camera.rotate.y)),
				y : p.y,
				z : p.x*-Math.sin(dtr(camera.rotate.y)) + p.z*Math.cos(dtr(camera.rotate.y))
			}
		},
		viewReset : function(p) {
			return {
				x : p.x - camera.self.x,
				y : p.y - camera.self.y,
				z : p.z - camera.self.z
			}
		},
		righthandedReversal : function(p) {
			return {
				x : p.x,
				y : -p.y,
				z : p.z,
			}
		}
	},
	perspective : function(p) {
		return {
			x : p.x * ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,
			y : p.y * ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,
			z : p.z * ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,
			p : ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,
		}
	},
	display : function(p, display) {
		return {
			x : p.x + display.x,
			y : p.y + display.y,
			z : p.z + display.z,
			p : p.p,
		}
	},
	process : function(model, size, rotate, position,display) {
		var ret = affine.world.size(model, size);
		ret = affine.world.rotate.x(ret, rotate);
		ret = affine.world.rotate.y(ret, rotate);
		ret = affine.world.rotate.z(ret, rotate);
		ret = affine.world.position(ret, position);
		ret = affine.view.point(ret);
		ret = affine.view.x(ret);
		ret = affine.view.y(ret);
		ret = affine.view.viewReset(ret);
		ret = affine.view.righthandedReversal(ret);
		ret = affine.perspective(ret);
		ret = affine.display(ret, display);
		return ret;
	}
};



var vertex3d = function(param) {
	this.affineIn = new Object;
	this.affineOut = new Object;
	if(param.vertex !== undefined) {
		this.affineIn.vertex = param.vertex;
	} else {
		this.affineIn.vertex = {x:0,y:0,z:0};
	};
	if(param.size !== undefined) {
		this.affineIn.size = param.size;
	} else {
		this.affineIn.size = {x:1,y:1,z:1};
	};
	if(param.rotate !== undefined) {
		this.affineIn.rotate = param.rotate;
	} else {
		this.affineIn.rotate = {x:0,y:0,z:0};
	};
	if(param.position !== undefined) {
		this.affineIn.position = param.position;
	} else {
		this.affineIn.position = {x:0,y:0,z:0};
	};
};
vertex3d.prototype = {
	vertexUpdate : function() {
		this.affineOut = affine.process(
			this.affineIn.vertex,
			this.affineIn.size,
			this.affineIn.rotate,
			this.affineIn.position,
			camera.display
		);
	}
};

	var dtr = function(v) {return v * Math.PI/180;};
    //cordinate system transformation.
	//polar to rectangle.
	var polarToRectangle =  function(dX, dY, radius) {
		var x = Math.sin(dtr(dX)) * Math.cos(dtr(dY)) * radius;
		var y = Math.sin(dtr(dX)) * Math.sin(dtr(dY)) * radius;
		var z = Math.cos(dtr(dX)) * radius;
		return {x:y, y:z, z:x};
	};
	//rectangle to polar.
	var rectangleToPolar = function(x, y, z) {
		if(x == 0)	var xD = 0.001;
		else		var xD = x;
		if(y == 0)	var yD = 0.001;
		else		var yD = y;
		if(z == 0)	var zD = 0.001;
		else		var zD = z;
		var radius = Math.sqrt(xD*xD + yD*yD + zD*zD);
		var theta = Math.atan(zD / Math.sqrt(xD*xD + yD*yD));
		var phi = Math.atan(yD / xD);
		return {x:theta*(180/Math.PI), y:phi*(180/Math.PI), r:radius};
	};
	var closeValue = function(minTime, maxTime) {
		this.flag = 0;
		this.progress = 0;
		this.startTime = 0;
		this.durationTime = 0;
		this.fromValue = 0;
		this.toValue = 0;
		this.minValue = 0;
		this.maxValue = 1;
		this.minDuration = minTime;
		this.maxDuration = maxTime;
	};
	closeValue.prototype = {
		init : function() {
			this.durationTime = this.minDuration + (this.maxDuration-this.minDuration) * Math.random();
			this.startTime = Date.now();
			this.progress = Math.min(1, ((Date.now()-this.startTime)/this.durationTime))
			this.fromValue = this.toValue;
			this.toValue = this.minValue + this.maxValue * Math.random();
			this.flag = 1;
			return this.fromValue + (this.toValue - this.fromValue) * this.progress;
		},
		update : function() {
			this.progress = Math.min(1, ((Date.now()-this.startTime)/this.durationTime));
			if(this.progress== 1) this.flag = 0;
			return this.fromValue + (this.toValue - this.fromValue) * this.progress;
		},
		execution : function() {
			if(this.flag == 0)		{return this.init()}
			else if(this.flag == 1)	{return this.update()};
		}
	};

	var strokeColor = &quot;rgba(255,255,255,0.1)&quot;;
	var backgroundColor = &quot;rgba(0,0,0,1)&quot;;
	var vibrateFlag = false;
	
	var canvas = document.getElementById(&quot;canvas&quot;);
	var canvasWidth = window.innerWidth;
	var canvasHeight = window.innerHeight;
	canvas.width = canvasWidth;
	canvas.height = canvasHeight;
	var ctx	= canvas.getContext(&quot;2d&quot;);
	ctx.strokeStyle = strokeColor;
		
	window.onresize = function() {
		canvas.width = window.innerWidth;
		canvas.height = window.innerHeight;
		camera.display.x = window.innerWidth/2;
		camera.display.y = window.innerHeight/2;
	};
	
	
	/* class */
	var	sphere = function(arg) {
		this.flag = true;
		this.type = &quot;_&quot;;
		this.particleNum = arg.particleNum;
		this.center = {x:0, y:0, z:0};
		this.targetCenter = arg.center;
		this.radius = 0;
		this.targetRadius = arg.radius;
		
		this.degree = new Array();
		this.freeDegreeSpeed = new Array();
		for(var j=0; j&lt;this.particleNum; j++) {
			this.degree[j] = {theta:0, phi:0};
			this.freeDegreeSpeed[j] = {theta:1*Math.random()-0.5, phi:1*Math.random()-0.5};
		};
		this.charsMap = new Object();
		for(var i in chars) {
			var buffer = document.getElementById(i).getContext(&quot;2d&quot;).getImageData(0, 0, 100, 100).data;
			this.charsMap[i] = new Array();
			var self = this;
			for(var j=0; j&lt;this.particleNum; j++) {
				var redo = function() {
					var theta = Math.floor(Math.random()*100);
					var phi = Math.floor(Math.random()*100);
					if(buffer[(theta*400+(phi*4))] == 0) {
						self.charsMap[i].push(
							{
								theta:theta-50 + 360 * Math.round(Math.random()*2)-1,
								phi:phi-50 + 360 * Math.round(Math.random()*2)-1
							}
						);
					} else {
						redo();
					};
				};
				redo();	
			};
		};
		this.charsMap[&quot;@&quot;] = new Array();
		for(var i=0; i&lt;this.particleNum; i++) {
			this.charsMap[&quot;@&quot;][i] = {theta:360*Math.random(), phi:360*Math.random()};
		};
		this.charsMap[&quot;_&quot;] = new Array();
		for(var i=0; i&lt;this.particleNum; i++) {
			this.charsMap[&quot;_&quot;][i] = {theta:0, phi:0};
		};
		
		this.veticies = new Array();
		for(var i=0; i&lt;this.particleNum; i++) {
			this.veticies[i] = new vertex3d({});
		};
	};
	sphere.prototype = {
		update : function() {
			for(var i=0; i&lt;this.charsMap[this.type].length; i++) {
				if(this.degree[i].theta &gt;= 30 &amp;&amp; this.degree[i].phi &gt;= 30) {
					this.flag = true;
					break;
				} else {
					this.flag = false;
				};	
			};
			this.radius =  this.radius + (this.targetRadius - this.radius) / 8;
			this.center.x = this.center.x + (this.targetCenter.x - this.center.x) / 8;
			this.center.y = this.center.y + (this.targetCenter.y - this.center.y) / 8;
			this.center.z = this.center.z + (this.targetCenter.z - this.center.z) / 8;
			for(var i=0; i&lt;this.charsMap[this.type].length; i++) {
				if(this.type === &quot;@&quot;) {
					this.charsMap[this.type][i].theta += this.freeDegreeSpeed[i].theta;
					this.charsMap[this.type][i].phi += this.freeDegreeSpeed[i].phi;
				};
				this.degree[i].theta =this.degree[i].theta + (this.charsMap[this.type][i].theta-this.degree[i].theta)/(4+20*Math.random());
				this.degree[i].phi = this.degree[i].phi + (this.charsMap[this.type][i].phi-this.degree[i].phi)/(4+20*Math.random());
				if(vibrateFlag == true) {
					var getPosition = polarToRectangle(this.degree[i].theta+90, this.degree[i].phi, this.radius+Math.random()*10);
				} else {
					var getPosition = polarToRectangle(this.degree[i].theta+90, this.degree[i].phi, this.radius);
				};
				this.veticies[i].affineIn.vertex = {
					x:getPosition.x,
					y:getPosition.y,
					z:getPosition.z
				};
				this.center.x
				this.veticies[i].affineIn.position = {
					x:this.center.x,
					y:this.center.y,
					z:this.center.z
				};
				this.veticies[i].vertexUpdate();
			};
		},
		draw : function() {
			if(this.flag == true) {
				ctx.beginPath();
				for(var i=0; i&lt;this.veticies.length; i++) {
					for(var j=i; j&lt;this.veticies.length; j++) {
						
						var distance = 
						(this.veticies[i].affineOut.x-this.veticies[j].affineOut.x)*(this.veticies[i].affineOut.x-this.veticies[j].affineOut.x) +
						(this.veticies[i].affineOut.y-this.veticies[j].affineOut.y)*(this.veticies[i].affineOut.y-this.veticies[j].affineOut.y);
						
						if(distance &lt;= this.radius*3) {
							ctx.moveTo(
								this.veticies[i].affineOut.x,
								this.veticies[i].affineOut.y
							);
							ctx.lineTo(
								this.veticies[j].affineOut.x,
								this.veticies[j].affineOut.y
							);
						};
					};
				};
				ctx.closePath();
				ctx.stroke();
			};
		}
	};
	/* class */
	var sphereNum = 20;
	var s = new Array();
	/*-----------------------------------------------------*/
	var setup = function() {
		for(var i=0; i&lt;sphereNum; i++) {
			s[i] = new sphere({radius:100, particleNum:250, center:{x:70*i - (sphereNum-1)*70/2,y:0,z:0}});
		};
	};
	/*-----------------------------------------------------*/
	var update = function() {
		for(var i=0; i&lt;sphereNum; i++) {
			s[i].update();
		};
	};
	/*-----------------------------------------------------*/
	var draw = function() {
		for(var i=0; i&lt;sphereNum; i++) {
			s[i].draw();
		};
	};
	
	
	var chars = {
		A : &quot;&quot;,
		B : &quot;&quot;,
		C : &quot;&quot;,
		D : &quot;&quot;,
		E : &quot;&quot;,
		F : &quot;&quot;,
		G : &quot;&quot;,
		H : &quot;&quot;,
		I : &quot;&quot;,
		J : &quot;&quot;,
		K : &quot;&quot;,
		L : &quot;&quot;,
		M : &quot;&quot;,
		N : &quot;&quot;,
		O : &quot;&quot;,
		P : &quot;&quot;,
		Q : &quot;&quot;,
		R : &quot;&quot;,
		S : &quot;&quot;,
		T : &quot;&quot;,
		U : &quot;&quot;,
		V : &quot;&quot;,
		W : &quot;&quot;,
		X : &quot;&quot;,
		Y : &quot;&quot;,
		Z : &quot;&quot;,
		&quot;!&quot; : &quot;&quot;,
		&quot;?&quot; : &quot;&quot;,
		&quot;0&quot; : &quot;&quot;,
		&quot;1&quot; : &quot;&quot;,
		&quot;2&quot; : &quot;&quot;,
		&quot;3&quot; : &quot;&quot;,
		&quot;4&quot; : &quot;&quot;,
		&quot;5&quot; : &quot;&quot;,
		&quot;6&quot; : &quot;&quot;,
		&quot;7&quot; : &quot;&quot;,
		&quot;8&quot; : &quot;&quot;,
		&quot;9&quot; : &quot;&quot;
	};
	var charsLength = 0;
	var charCounter = 0;
	var bufferImages = {};
	var bufferCanvases = {};
	for(var i in chars) {
		charsLength++;
		bufferImages[i] = new Image();
		bufferImages[i].src = chars[i];
		bufferImages[i].onload = function() {
			charCounter++;
			if(charCounter === charsLength) {
				bufferDraw();
			};
		};
	};
	var bufferDraw = function() {
		for(var i in chars) {
			var canvas = document.createElement(&quot;canvas&quot;);
			canvas.id = i;
			document.getElementById(&quot;buffer&quot;).appendChild(canvas);
			document.getElementById(i).getContext(&quot;2d&quot;).drawImage(
				bufferImages[i],
				0,
				0,
				100,
				100
			);
		};
		start();
	};

	var textChanger = function(text, sphereRadius, sphereSpace, unitTime) {
		var changeIncrement = 0;
		var charNum = text.length;
		var center = new Array();
		for(var i=0; i&lt;charNum; i++) {
			center[i] = {x:sphereSpace*i - sphereSpace*(charNum-1)/2, y:0, z:0};
		};
		var changer = function() {
			setTimeout(function() {
				s[changeIncrement].type = text[changeIncrement];
				s[changeIncrement].targetCenter = center[changeIncrement]; 
				s[changeIncrement].targetRadius = sphereRadius; 
				changeIncrement++;
				if(changeIncrement &lt; charNum) {
					changer();
				};
			}, unitTime);
		};
		for(var i=charNum; i&lt;s.length; i++) {
			s[i].type = &quot;_&quot;;
		};
		changer();
	};
	
	var fullSet = function() {
		var alpha = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ__?!1234567890&quot;;
		var col = 10;
		var colUnit = 80;
		var rowUnit = 120;
		for(var i=0; i&lt;alpha.length; i++) {
			s[i].targetCenter = {
				x:(i%10)*colUnit - (col-1)*colUnit/2,
				y:Math.floor(i/10)*-rowUnit + 180,
				z:0
			};
			s[i].type = alpha[i];
		};
	};
	var textSet = [
		{text:&quot;WEBSPHERE&quot;, sphereRadius:140, sphereSpace:80, unitTime:100, time:1000},
		{text:&quot;THIS_IS&quot;, sphereRadius:120, sphereSpace:70, unitTime:120, time:4000},
		{text:&quot;EXPERIMENTAL&quot;, sphereRadius:120, sphereSpace:70, unitTime:50, time:2000},
		{text:&quot;TYPEFACE&quot;, sphereRadius:120, sphereSpace:70, unitTime:100, time:4000},
		{text:&quot;BASED_ON&quot;, sphereRadius:100, sphereSpace:60, unitTime:100, time:3000},
		{text:&quot;HELVETICA&quot;, sphereRadius:140, sphereSpace:80, unitTime:100, time:2000},
		{text:&quot;@@@@@@@@&quot;, sphereRadius:60 + Math.random()*60, sphereSpace:200, unitTime:100, time:4000},
		{text:&quot;MOVABLE&quot;, sphereRadius:120, sphereSpace:70, unitTime:100, time:2000},
		{text:&quot;AND&quot;, sphereRadius:100, sphereSpace:60, unitTime:150, time:3500},
		{text:&quot;PROGRAMABLE&quot;, sphereRadius:120, sphereSpace:70, unitTime:50, time:2000},
		{text:&quot;!!!!!!!&quot;, sphereRadius:100, sphereSpace:60, unitTime:100, time:3500},
		{text:&quot;HACK_ME!&quot;, sphereRadius:140, sphereSpace:80, unitTime:100, time:2500},
		{text:&quot;@@@@@@@@&quot;, sphereRadius:60 + Math.random()*60, sphereSpace:200, unitTime:100, time:4000}
	];
	
	var textSetChangerIncrement = 0;
	var textSetChanger = function() {
		setTimeout(function() {			
			textChanger(
				textSet[textSetChangerIncrement].text,
				textSet[textSetChangerIncrement].sphereRadius,
				textSet[textSetChangerIncrement].sphereSpace,
				textSet[textSetChangerIncrement].unitTime
			);
			textSetChangerIncrement++;
			if(textSetChangerIncrement == textSet.length) {
				textSetChangerIncrement = 0;
			};
			textSetChanger();
		}, textSet[textSetChangerIncrement].time);
	};
	var vibrateCV = new closeValue(200, 500);
	var invertCV = new closeValue(1000, 1200);
	
	var start = function() {
		setup();
		setInterval(function() {
			if(vibrateCV.execution() &gt; 0.8) {
				vibrateFlag = true;
			} else {
				vibrateFlag = false;
			};
			if(invertCV.execution() &gt; 0.7) {
				strokeColor = &quot;rgba(0,0,0,0.1)&quot;;
				backgroundColor = &quot;rgba(255,255,255,1)&quot;;
			} else {
				strokeColor = &quot;rgba(255,255,255,0.1)&quot;;
				backgroundColor = &quot;rgba(0,0,0,1)&quot;;
			};
			ctx.clearRect(0, 0, canvasWidth, canvasHeight);
			ctx.fillStyle = backgroundColor;
			ctx.fillRect(0, 0, window.innerWidth, window.innerHeight);
			ctx.strokeStyle = strokeColor;
			update();
			draw();
		}, 1000/60);
		textSetChanger();
	};
	document.body.onmousemove = function(e) {
	camera.rotate.x = e.pageY/window.innerHeight * 180 - 90;
	camera.rotate.y = e.pageX/window.innerWidth * 180 - 90;
	document.onmousedown = function() {camera.zoom = Math.random()*1+1};
	document.onmouseup = function() {camera.zoom = 1};
};
            </code>
          </pre>
          <div class="error-bar" id="error-bar-js">
            <span class="error-icon" data-type="js">
              !
            </span>
          </div>
        </div>

      </div>

    </div>

    <div id="resizer" class="resizer"><span></span><div id="width-readout" class="width-readout">999px</div></div>

    <div class="output-container">
      <div class="output-sizer"> 

        <div id="result_div" class="result">
          <iframe id="result"
            name="CodePen"
            src=""
            sandbox="allow-scripts allow-pointer-lock allow-same-origin allow-popups allow-modals allow-forms"
            scrolling="auto" allowTransparency="true" allowfullscreen="true" class="result-iframe iframe-empty">
          </iframe>

          <div class="assets-wrap" id="assets-wrap">

  <div role="button" id="assets-area-close-button" class="assets-area-close-button">
    <svg class="icon-x">
      <use xlink:href="#x"></use>
    </svg>
    <span class="screen-reader-text">Close</span>
  </div>


    <div class="asset-upsell">

      <div>
        <h2>Asset uploading is a <span class="badge badge-pro">PRO</span> feature.</h2>
        <p>As a PRO member, you can drag-and-drop upload files here to use as resources. Images, Libraries, JSON data... anything you want. You can even edit them anytime, like any other code on CodePen.</p>
        <p><a href="/pro/" class="button green" target="_blank" rel="noopener">Go PRO</a></p>
      </div>

    </div>


</div>


            <section id="drawer" class="drawer">

            </section>

          <div id="loading-text" class="loading-text">
            Loading
            <span>
              ..................
            </span>
          </div>

          <div id="editor-drag-cover" class="drag-cover"></div>

        </div>

        <div id="box-console" class="box box-console">

  <div class="editor-resizer editor-resizer-console" title="Drag to resize. Double-click to expand."></div>

  <div class="powers">
    <div class="powers-drag-handle" title="Drag to resize. Double-click to expand."></div>
    <div class="editor-actions-left">
      <h2 class="box-title"><span class="box-title-name">Console</span></h2>
      <div class="editor-actions-right">
        <button class="button button-medium mini-button console-clear-button" title="Clear">
          Clear
        </button>
        <button class="button button-medium mini-button close-editor-button" data-type="console" title="Close">
          <svg class="icon-x">
            <use xlink:href="#x"></use>
          </svg>
        </button>
      </div>
    </div>
  </div>

  <div class="console-wrap">
    <div class="console-entries short-no-scroll"></div>
    <div class="console-command-line">
      <span class="console-arrow forwards"></span>
      <textarea class="console-command-line-input auto-expand" rows="1" data-min-rows="1"></textarea>
    </div>
  </div>

</div>


      </div> 

    </div>

  </div>

</div>

  <footer class="site-footer editor-footer">

  <div class="footer-left">


    <button class="button button-dark mini-button console-toggle-button">
  Console
</button>

    <button class="button button-dark mini-button" id="assets-link">
      Assets
    </button>

      <button class="button button-dark mini-button" id="view-details-button">
        Comments
      </button>


    <button class="button button-dark mini-button keyboard-commands-button">
      <span>Keyboard</span>
    </button>

      <span id="bsa-footer" class="bsa-footer"></span>

  </div>

  <div class="footer-right">




      <button id="sharing-button" class="button button-dark mini-button sharing-button" data-dropdown="#sharing-panel">
        Share
      </button>
        <section id="sharing-panel" class="sharing-panel is-dropdown">

  <ul id="share-buttons" class="share-buttons share-section">

    <li>
      <a target="_blank" rel="noopener" class="button" href="https://twitter.com/intent/tweet?text=motion%20graphic%20typeface&url=https://codepen.io/ara_node/pen/nuJCG&via=CodePen">
        <svg class="icon-twitter">
          <use xlink:href="#twitter" />
        </svg>
        Share on Twitter
      </a>
    </li>

    <li>
      <a target="_blank" rel="noopener" class="button" href="https://www.facebook.com/sharer/sharer.php?u=https://codepen.io/ara_node/pen/nuJCG">
        <svg class="icon-facebook">
          <use xlink:href="#facebook" />
        </svg>
        Share on Facebook
      </a>
    </li>

    <li>
      <a target="_blank" rel="noopener" class="button" href="https://plus.google.com/share?url=https://codepen.io/ara_node/pen/nuJCG">
        <svg class="icon-google-plus">
          <use xlink:href="#google-plus" />
        </svg>
        Share on Google+
      </a>
    </li>

  </ul>

  

</section>


      <button id="sharing-button" class="button button-dark mini-button export-button" data-dropdown="#export-panel">
        Export
      </button>

        <button class="button button-dark mini-button embed-builder-button">
          Embed
        </button>

      <section id="export-panel" class="export-panel is-dropdown">
        <div class="share-actions share-section">


  <a id="share-zip" href="#0" class="button">
    <svg class="icon-zip-badge">
      <use xlink:href="#zip-badge" />
    </svg>
    Export .zip
  </a>

    <a href="#0" class="button embed-builder-button">
      <svg class="icon-embed-badge">
        <use xlink:href="#embed-badge" />
      </svg>
      Embed Pen
    </a>

</div>
      </section>


  </div>

</footer>

<div id="keycommands" class="modal modal-neutral">

  <section class="editor-commands" style="padding-right: 10px;">

    <h2>Editor Commands</h2>

    <div class="key-group">
      <kbr class="command-no-mod">
        <span class="pc_only">Ctrl</span>
        <span class="mac_only">Ctrl</span>
        Space
      </kbr>
      Autocomplete (if available)
    </div>
    <div class="key-group">
      <kbr class="command">F</kbr>
      Find
    </div>
    <div class="key-group">
      <kbr class="command">G</kbr>
      Find Next
    </div>
    <div class="key-group">
      <kbr class="command">⇧G</kbr>
      Find Previous
    </div>
    <div class="key-group">
      <span class="pc_only">Alt</span>
      <span class="mac_only">Opt</span>
      Find & Replace
    </div>
    <div class="key-group">
      <kbr class="command">[</kbr>
      Indent Code Right
    </div>
    <div class="key-group">
      <kbr class="command">]</kbr>
      Indent Code Left
    </div>
      <div class="key-group">
        <kbr class="command-no-mod">⇧ Tab</kbr>
        Auto Indent Code
      </div>
    <div class="key-group">
      <kbr class="command">/</kbr>
      Line Comment
    </div>
    <div class="key-group">
      <kbr class="command">
        <span class="pc_only">⇧</span>
        <span class="mac_only">Opt</span>
        /
      </kbr>
      Block Comment
    </div>
    <div class="key-group">
      <kbr class="command">J</kbr>
      Join This & Next Line
    </div>

    <h2>Pen Actions</h2>

    <div class="key-group">
      <kbr class="command">P</kbr>
      Create New Pen
    </div>

    <div class="key-group">
      <kbr class="command">S</kbr>
      Save
    </div>

    <div class="key-group">
      <kbr class="command">I</kbr>
      Info Panel (if owned)
    </div>

    <p style="margin: 20px 0 0 0;">Also see: <a href="https://blog.codepen.io/documentation/features/tab-triggers/" target="_blank" rel="noopener">Tab Triggers</a></p>

  </section>


  <section class="editor-commands">

    <h2>HTML Specific</h2>

    <div class="key-group">
      <kbr class="command">D</kbr>
      Select Outward Matching Pair
    </div>
    <div class="key-group">
      <kbr class="command">⇧A</kbr>
      Wrap With...
    </div>
    <div class="key-group">
      <kbr class="command">⇧ .</kbr>
      Close Closest Open Tag
    </div>


    <h2>CSS Specific</h2>

    <div class="key-group">
      <kbr class="command">⇧Y</kbr>
      Evaluate Simple Math
    </div>

    <div class="key-group"> 
      <kbr class="command-no-mod">
        <span class="pc_only">Ctrl</span>
        <span class="mac_only">Ctrl</span>
        ↑
      </kbr>
      Increment Number 1
    </div>

    <div class="key-group">
      <kbr class="command-no-mod">
        <span class="pc_only">Ctrl</span>
        <span class="mac_only">Ctrl</span>
        ↓
      </kbr>
      Decrement Number 1
    </div>

    <h2>Misc</h2>

    <div class="key-group">
      <kbr class="command">⇧5</kbr>
      Re-run Preview
    </div>

    <div class="key-group">
      <kbr class="command">⇧8</kbr>
      Clear All Analyze Errors
    </div>

    <div class="key-group">
      <kbr class="command">⇧9</kbr>
      Open This Dialog
    </div>

  </section>

</div>


  




  <div id="popup-overlay" class="overlay popup-overlay"></div>
  <div id="modal-overlay" class="overlay modal-overlay"></div>

  <noscript>

  <input type="checkbox" class="modal-closing-trick" id="modal-closing-trick">

  <div class="overlay noscript-overlay" style="display: block;"></div>

  <div class="modal modal-message group modal-warning">

    <div class="modal-title">CodePen requires JavaScript to render the code and preview areas in this view.</div>

    <p>Trying <a href="https://codepen.io/ara_node/debug/nuJCG">viewing this Pen in Debug Mode</a>, which is the preview area without any iframe and does not require JavaScript. Although what the preview is of might!</p>

    <p>Need to know how to enable JavaScript? <a href="http://enable-javascript.com/" target="_blank" rel="noopener">Go here.</a></p>

    <label class="button button-medium" for="modal-closing-trick">Close this, use anyway.</label>

  </div>

</noscript>

  <input type="hidden" id="init-data" value="{&quot;__mobile&quot;:false,&quot;__cookieUsed&quot;:false,&quot;__turnOffJS&quot;:false,&quot;__CPDATA&quot;:{&quot;host&quot;:&quot;codepen.io&quot;,&quot;asset_host&quot;:&quot;production-assets.codepen.io&quot;,&quot;embed_asset_host&quot;:&quot;production-assets.codepen.io&quot;,&quot;host_port&quot;:&quot;&quot;,&quot;host_secure_subdomain&quot;:&quot;s.&quot;,&quot;iframe_sandbox&quot;:&quot;allow-scripts allow-pointer-lock allow-same-origin allow-popups allow-modals allow-forms&quot;},&quot;__env&quot;:&quot;prod&quot;,&quot;__browserName&quot;:&quot;Generic Browser&quot;,&quot;__remote_addr&quot;:&quot;58.248.232.15&quot;,&quot;__user&quot;:{&quot;id&quot;:1,&quot;name&quot;:&quot;Captain Anonymous&quot;,&quot;username&quot;:&quot;anon&quot;,&quot;base_url&quot;:&quot;/anon/&quot;,&quot;current_team_id&quot;:0,&quot;paid&quot;:false,&quot;tier&quot;:0,&quot;session_hash&quot;:&quot;d8370d90b197e0392a85f7182c578c87&quot;},&quot;__phkPrefix&quot;:&quot;c59e91eab96692e6d87cd1b4f39000ea&quot;,&quot;__pageType&quot;:&quot;pen&quot;,&quot;__preprocessors_url&quot;:&quot;preprocessor.codepen.io&quot;,&quot;__layoutType&quot;:null,&quot;__rtData&quot;:&quot;{\&quot;roomType\&quot;:\&quot;live\&quot;,\&quot;rtClientID\&quot;:\&quot;\&quot;,\&quot;clientRoomID\&quot;:\&quot;:live:nuJCG:\&quot;,\&quot;clientRoleID\&quot;:\&quot;:live:nuJCG::role\&quot;,\&quot;roomID\&quot;:\&quot;live:nuJCG\&quot;,\&quot;role\&quot;:\&quot;\&quot;,\&quot;usesRoomData\&quot;:false,\&quot;maxMembers\&quot;:0,\&quot;pen\&quot;:{\&quot;slugHash\&quot;:\&quot;nuJCG\&quot;},\&quot;user\&quot;:{\&quot;id\&quot;:1,\&quot;name\&quot;:\&quot;Captain Anonymous\&quot;,\&quot;username\&quot;:\&quot;anon\&quot;,\&quot;paid\&quot;:false,\&quot;tier\&quot;:0,\&quot;role\&quot;:\&quot;\&quot;}}&quot;,&quot;__item&quot;:&quot;{\&quot;resources\&quot;:[],\&quot;tags\&quot;:[\&quot;3d\&quot;,\&quot;generative\&quot;],\&quot;editor_settings\&quot;:{\&quot;theme\&quot;:\&quot;twilight\&quot;,\&quot;html_pre_processor\&quot;:\&quot;none\&quot;,\&quot;css_pre_processor\&quot;:\&quot;none\&quot;,\&quot;css_starter\&quot;:\&quot;neither\&quot;,\&quot;css_prefix\&quot;:\&quot;neither\&quot;,\&quot;js_pre_processor\&quot;:\&quot;none\&quot;,\&quot;font_type\&quot;:\&quot;monaco\&quot;,\&quot;font_size\&quot;:\&quot;14\&quot;,\&quot;key_bindings\&quot;:\&quot;normal\&quot;,\&quot;indent_with\&quot;:\&quot;spaces\&quot;,\&quot;tab_size\&quot;:2,\&quot;auto_run\&quot;:true,\&quot;line_numbers\&quot;:true,\&quot;line_wrapping\&quot;:true,\&quot;code_folding\&quot;:true,\&quot;match_brackets\&quot;:true,\&quot;autocomplete\&quot;:false},\&quot;custom_screenshot\&quot;:null,\&quot;id\&quot;:387379,\&quot;user_id\&quot;:42687,\&quot;html\&quot;:\&quot;\\n\\t&lt;canvas id=\\\&quot;canvas\\\&quot; style=\\\&quot;position:absolute; top:0; left:0;\\\&quot;&gt;&lt;/canvas&gt;\\n\\t&lt;div id=\\\&quot;buffer\\\&quot; style=\\\&quot;display:none;\\\&quot;&gt;\&quot;,\&quot;css\&quot;:\&quot;* {margin:0;}\\nbody {background:#000000;}\&quot;,\&quot;parent\&quot;:0,\&quot;js\&quot;:\&quot;\\nvar camera = {\\n\\tfocus : 400,\\n\\tself : {\\n\\t\\tx : 0,\\n\\t\\ty : 0,\\n\\t\\tz : 0\\n\\t},\\n\\trotate : {\\n\\t\\tx : 0,\\n\\t\\ty : 0,\\n\\t\\tz : 0\\n\\t},\\n\\tup : {\\n\\t\\tx : 0,\\n\\t\\ty : 1,\\n\\t\\tz : 0\\n\\t},\\n\\tzoom : 1,\\n\\tdisplay : {\\n\\t\\tx : window.innerWidth/2,\\n\\t\\ty : window.innerHeight/2,\\n\\t\\tz : 0\\n\\t}\\n};\\nvar affine = {\\n\\tworld : {\\n\\t\\tsize : function(p, size) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx :\\tp.x * size.x,\\n\\t\\t\\t\\ty : p.y * size.y,\\n\\t\\t\\t\\tz : p.z * size.z\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\trotate: {\\n\\t\\t\\tx : function(p, rotate) {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tx : p.x,\\n\\t\\t\\t\\t\\ty : p.y*Math.cos(dtr(rotate.x)) - p.z*Math.sin(dtr(rotate.x)),\\n\\t\\t\\t\\t\\tz : p.y*Math.sin(dtr(rotate.x)) + p.z*Math.cos(dtr(rotate.x))\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\ty : function(p, rotate) {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tx : p.x*Math.cos(dtr(rotate.y)) + p.z*Math.sin(dtr(rotate.y)),\\n\\t\\t\\t\\t\\ty : p.y,\\n\\t\\t\\t\\t\\tz : -p.x*Math.sin(dtr(rotate.y)) + p.z*Math.cos(dtr(rotate.y))\\n\\t\\t\\t\\t}\\n\\t\\t\\t},\\n\\t\\t\\tz : function(p, rotate) {\\n\\t\\t\\t\\treturn {\\n\\t\\t\\t\\t\\tx : p.x*Math.cos(dtr(rotate.z)) - p.y*Math.sin(dtr(rotate.z)),\\n\\t\\t\\t\\t\\ty : p.x*Math.sin(dtr(rotate.z)) + p.y*Math.cos(dtr(rotate.z)),\\n\\t\\t\\t\\t\\tz : p.z\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tposition : function(p, position) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx : p.x + position.x,\\n\\t\\t\\t\\ty : p.y + position.y,\\n\\t\\t\\t\\tz : p.z + position.z\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tview : {\\n\\t\\tpoint : function(p) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx : p.x - camera.self.x,\\n\\t\\t\\t\\ty : p.y - camera.self.y,\\n\\t\\t\\t\\tz : p.z - camera.self.z\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tx : function(p) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx : p.x,\\n\\t\\t\\t\\ty : p.y*Math.cos(dtr(camera.rotate.x)) - p.z*Math.sin(dtr(camera.rotate.x)),\\n\\t\\t\\t\\tz : p.y*Math.sin(dtr(camera.rotate.x)) + p.z*Math.cos(dtr(camera.rotate.x))\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\ty : function(p) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx : p.x*Math.cos(dtr(camera.rotate.y)) + p.z*Math.sin(dtr(camera.rotate.y)),\\n\\t\\t\\t\\ty : p.y,\\n\\t\\t\\t\\tz : p.x*-Math.sin(dtr(camera.rotate.y)) + p.z*Math.cos(dtr(camera.rotate.y))\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tviewReset : function(p) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx : p.x - camera.self.x,\\n\\t\\t\\t\\ty : p.y - camera.self.y,\\n\\t\\t\\t\\tz : p.z - camera.self.z\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\trighthandedReversal : function(p) {\\n\\t\\t\\treturn {\\n\\t\\t\\t\\tx : p.x,\\n\\t\\t\\t\\ty : -p.y,\\n\\t\\t\\t\\tz : p.z,\\n\\t\\t\\t}\\n\\t\\t}\\n\\t},\\n\\tperspective : function(p) {\\n\\t\\treturn {\\n\\t\\t\\tx : p.x * ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,\\n\\t\\t\\ty : p.y * ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,\\n\\t\\t\\tz : p.z * ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,\\n\\t\\t\\tp : ((camera.focus-camera.self.z) / ((camera.focus-camera.self.z) - p.z)) * camera.zoom,\\n\\t\\t}\\n\\t},\\n\\tdisplay : function(p, display) {\\n\\t\\treturn {\\n\\t\\t\\tx : p.x + display.x,\\n\\t\\t\\ty : p.y + display.y,\\n\\t\\t\\tz : p.z + display.z,\\n\\t\\t\\tp : p.p,\\n\\t\\t}\\n\\t},\\n\\tprocess : function(model, size, rotate, position,display) {\\n\\t\\tvar ret = affine.world.size(model, size);\\n\\t\\tret = affine.world.rotate.x(ret, rotate);\\n\\t\\tret = affine.world.rotate.y(ret, rotate);\\n\\t\\tret = affine.world.rotate.z(ret, rotate);\\n\\t\\tret = affine.world.position(ret, position);\\n\\t\\tret = affine.view.point(ret);\\n\\t\\tret = affine.view.x(ret);\\n\\t\\tret = affine.view.y(ret);\\n\\t\\tret = affine.view.viewReset(ret);\\n\\t\\tret = affine.view.righthandedReversal(ret);\\n\\t\\tret = affine.perspective(ret);\\n\\t\\tret = affine.display(ret, display);\\n\\t\\treturn ret;\\n\\t}\\n};\\n\\n\\n\\nvar vertex3d = function(param) {\\n\\tthis.affineIn = new Object;\\n\\tthis.affineOut = new Object;\\n\\tif(param.vertex !== undefined) {\\n\\t\\tthis.affineIn.vertex = param.vertex;\\n\\t} else {\\n\\t\\tthis.affineIn.vertex = {x:0,y:0,z:0};\\n\\t};\\n\\tif(param.size !== undefined) {\\n\\t\\tthis.affineIn.size = param.size;\\n\\t} else {\\n\\t\\tthis.affineIn.size = {x:1,y:1,z:1};\\n\\t};\\n\\tif(param.rotate !== undefined) {\\n\\t\\tthis.affineIn.rotate = param.rotate;\\n\\t} else {\\n\\t\\tthis.affineIn.rotate = {x:0,y:0,z:0};\\n\\t};\\n\\tif(param.position !== undefined) {\\n\\t\\tthis.affineIn.position = param.position;\\n\\t} else {\\n\\t\\tthis.affineIn.position = {x:0,y:0,z:0};\\n\\t};\\n};\\nvertex3d.prototype = {\\n\\tvertexUpdate : function() {\\n\\t\\tthis.affineOut = affine.process(\\n\\t\\t\\tthis.affineIn.vertex,\\n\\t\\t\\tthis.affineIn.size,\\n\\t\\t\\tthis.affineIn.rotate,\\n\\t\\t\\tthis.affineIn.position,\\n\\t\\t\\tcamera.display\\n\\t\\t);\\n\\t}\\n};\\n\\n\\tvar dtr = function(v) {return v * Math.PI/180;};\\n    //cordinate system transformation.\\n\\t//polar to rectangle.\\n\\tvar polarToRectangle =  function(dX, dY, radius) {\\n\\t\\tvar x = Math.sin(dtr(dX)) * Math.cos(dtr(dY)) * radius;\\n\\t\\tvar y = Math.sin(dtr(dX)) * Math.sin(dtr(dY)) * radius;\\n\\t\\tvar z = Math.cos(dtr(dX)) * radius;\\n\\t\\treturn {x:y, y:z, z:x};\\n\\t};\\n\\t//rectangle to polar.\\n\\tvar rectangleToPolar = function(x, y, z) {\\n\\t\\tif(x == 0)\\tvar xD = 0.001;\\n\\t\\telse\\t\\tvar xD = x;\\n\\t\\tif(y == 0)\\tvar yD = 0.001;\\n\\t\\telse\\t\\tvar yD = y;\\n\\t\\tif(z == 0)\\tvar zD = 0.001;\\n\\t\\telse\\t\\tvar zD = z;\\n\\t\\tvar radius = Math.sqrt(xD*xD + yD*yD + zD*zD);\\n\\t\\tvar theta = Math.atan(zD / Math.sqrt(xD*xD + yD*yD));\\n\\t\\tvar phi = Math.atan(yD / xD);\\n\\t\\treturn {x:theta*(180/Math.PI), y:phi*(180/Math.PI), r:radius};\\n\\t};\\n\\tvar closeValue = function(minTime, maxTime) {\\n\\t\\tthis.flag = 0;\\n\\t\\tthis.progress = 0;\\n\\t\\tthis.startTime = 0;\\n\\t\\tthis.durationTime = 0;\\n\\t\\tthis.fromValue = 0;\\n\\t\\tthis.toValue = 0;\\n\\t\\tthis.minValue = 0;\\n\\t\\tthis.maxValue = 1;\\n\\t\\tthis.minDuration = minTime;\\n\\t\\tthis.maxDuration = maxTime;\\n\\t};\\n\\tcloseValue.prototype = {\\n\\t\\tinit : function() {\\n\\t\\t\\tthis.durationTime = this.minDuration + (this.maxDuration-this.minDuration) * Math.random();\\n\\t\\t\\tthis.startTime = Date.now();\\n\\t\\t\\tthis.progress = Math.min(1, ((Date.now()-this.startTime)/this.durationTime))\\n\\t\\t\\tthis.fromValue = this.toValue;\\n\\t\\t\\tthis.toValue = this.minValue + this.maxValue * Math.random();\\n\\t\\t\\tthis.flag = 1;\\n\\t\\t\\treturn this.fromValue + (this.toValue - this.fromValue) * this.progress;\\n\\t\\t},\\n\\t\\tupdate : function() {\\n\\t\\t\\tthis.progress = Math.min(1, ((Date.now()-this.startTime)/this.durationTime));\\n\\t\\t\\tif(this.progress== 1) this.flag = 0;\\n\\t\\t\\treturn this.fromValue + (this.toValue - this.fromValue) * this.progress;\\n\\t\\t},\\n\\t\\texecution : function() {\\n\\t\\t\\tif(this.flag == 0)\\t\\t{return this.init()}\\n\\t\\t\\telse if(this.flag == 1)\\t{return this.update()};\\n\\t\\t}\\n\\t};\\n\\n\\tvar strokeColor = \\\&quot;rgba(255,255,255,0.1)\\\&quot;;\\n\\tvar backgroundColor = \\\&quot;rgba(0,0,0,1)\\\&quot;;\\n\\tvar vibrateFlag = false;\\n\\t\\n\\tvar canvas = document.getElementById(\\\&quot;canvas\\\&quot;);\\n\\tvar canvasWidth = window.innerWidth;\\n\\tvar canvasHeight = window.innerHeight;\\n\\tcanvas.width = canvasWidth;\\n\\tcanvas.height = canvasHeight;\\n\\tvar ctx\\t= canvas.getContext(\\\&quot;2d\\\&quot;);\\n\\tctx.strokeStyle = strokeColor;\\n\\t\\t\\n\\twindow.onresize = function() {\\n\\t\\tcanvas.width = window.innerWidth;\\n\\t\\tcanvas.height = window.innerHeight;\\n\\t\\tcamera.display.x = window.innerWidth/2;\\n\\t\\tcamera.display.y = window.innerHeight/2;\\n\\t};\\n\\t\\n\\t\\n\\t/* class */\\n\\tvar\\tsphere = function(arg) {\\n\\t\\tthis.flag = true;\\n\\t\\tthis.type = \\\&quot;_\\\&quot;;\\n\\t\\tthis.particleNum = arg.particleNum;\\n\\t\\tthis.center = {x:0, y:0, z:0};\\n\\t\\tthis.targetCenter = arg.center;\\n\\t\\tthis.radius = 0;\\n\\t\\tthis.targetRadius = arg.radius;\\n\\t\\t\\n\\t\\tthis.degree = new Array();\\n\\t\\tthis.freeDegreeSpeed = new Array();\\n\\t\\tfor(var j=0; j&lt;this.particleNum; j++) {\\n\\t\\t\\tthis.degree[j] = {theta:0, phi:0};\\n\\t\\t\\tthis.freeDegreeSpeed[j] = {theta:1*Math.random()-0.5, phi:1*Math.random()-0.5};\\n\\t\\t};\\n\\t\\tthis.charsMap = new Object();\\n\\t\\tfor(var i in chars) {\\n\\t\\t\\tvar buffer = document.getElementById(i).getContext(\\\&quot;2d\\\&quot;).getImageData(0, 0, 100, 100).data;\\n\\t\\t\\tthis.charsMap[i] = new Array();\\n\\t\\t\\tvar self = this;\\n\\t\\t\\tfor(var j=0; j&lt;this.particleNum; j++) {\\n\\t\\t\\t\\tvar redo = function() {\\n\\t\\t\\t\\t\\tvar theta = Math.floor(Math.random()*100);\\n\\t\\t\\t\\t\\tvar phi = Math.floor(Math.random()*100);\\n\\t\\t\\t\\t\\tif(buffer[(theta*400+(phi*4))] == 0) {\\n\\t\\t\\t\\t\\t\\tself.charsMap[i].push(\\n\\t\\t\\t\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\t\\t\\t\\ttheta:theta-50 + 360 * Math.round(Math.random()*2)-1,\\n\\t\\t\\t\\t\\t\\t\\t\\tphi:phi-50 + 360 * Math.round(Math.random()*2)-1\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t);\\n\\t\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\t\\tredo();\\n\\t\\t\\t\\t\\t};\\n\\t\\t\\t\\t};\\n\\t\\t\\t\\tredo();\\t\\n\\t\\t\\t};\\n\\t\\t};\\n\\t\\tthis.charsMap[\\\&quot;@\\\&quot;] = new Array();\\n\\t\\tfor(var i=0; i&lt;this.particleNum; i++) {\\n\\t\\t\\tthis.charsMap[\\\&quot;@\\\&quot;][i] = {theta:360*Math.random(), phi:360*Math.random()};\\n\\t\\t};\\n\\t\\tthis.charsMap[\\\&quot;_\\\&quot;] = new Array();\\n\\t\\tfor(var i=0; i&lt;this.particleNum; i++) {\\n\\t\\t\\tthis.charsMap[\\\&quot;_\\\&quot;][i] = {theta:0, phi:0};\\n\\t\\t};\\n\\t\\t\\n\\t\\tthis.veticies = new Array();\\n\\t\\tfor(var i=0; i&lt;this.particleNum; i++) {\\n\\t\\t\\tthis.veticies[i] = new vertex3d({});\\n\\t\\t};\\n\\t};\\n\\tsphere.prototype = {\\n\\t\\tupdate : function() {\\n\\t\\t\\tfor(var i=0; i&lt;this.charsMap[this.type].length; i++) {\\n\\t\\t\\t\\tif(this.degree[i].theta &gt;= 30 &amp;&amp; this.degree[i].phi &gt;= 30) {\\n\\t\\t\\t\\t\\tthis.flag = true;\\n\\t\\t\\t\\t\\tbreak;\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tthis.flag = false;\\n\\t\\t\\t\\t};\\t\\n\\t\\t\\t};\\n\\t\\t\\tthis.radius =  this.radius + (this.targetRadius - this.radius) / 8;\\n\\t\\t\\tthis.center.x = this.center.x + (this.targetCenter.x - this.center.x) / 8;\\n\\t\\t\\tthis.center.y = this.center.y + (this.targetCenter.y - this.center.y) / 8;\\n\\t\\t\\tthis.center.z = this.center.z + (this.targetCenter.z - this.center.z) / 8;\\n\\t\\t\\tfor(var i=0; i&lt;this.charsMap[this.type].length; i++) {\\n\\t\\t\\t\\tif(this.type === \\\&quot;@\\\&quot;) {\\n\\t\\t\\t\\t\\tthis.charsMap[this.type][i].theta += this.freeDegreeSpeed[i].theta;\\n\\t\\t\\t\\t\\tthis.charsMap[this.type][i].phi += this.freeDegreeSpeed[i].phi;\\n\\t\\t\\t\\t};\\n\\t\\t\\t\\tthis.degree[i].theta =this.degree[i].theta + (this.charsMap[this.type][i].theta-this.degree[i].theta)/(4+20*Math.random());\\n\\t\\t\\t\\tthis.degree[i].phi = this.degree[i].phi + (this.charsMap[this.type][i].phi-this.degree[i].phi)/(4+20*Math.random());\\n\\t\\t\\t\\tif(vibrateFlag == true) {\\n\\t\\t\\t\\t\\tvar getPosition = polarToRectangle(this.degree[i].theta+90, this.degree[i].phi, this.radius+Math.random()*10);\\n\\t\\t\\t\\t} else {\\n\\t\\t\\t\\t\\tvar getPosition = polarToRectangle(this.degree[i].theta+90, this.degree[i].phi, this.radius);\\n\\t\\t\\t\\t};\\n\\t\\t\\t\\tthis.veticies[i].affineIn.vertex = {\\n\\t\\t\\t\\t\\tx:getPosition.x,\\n\\t\\t\\t\\t\\ty:getPosition.y,\\n\\t\\t\\t\\t\\tz:getPosition.z\\n\\t\\t\\t\\t};\\n\\t\\t\\t\\tthis.center.x\\n\\t\\t\\t\\tthis.veticies[i].affineIn.position = {\\n\\t\\t\\t\\t\\tx:this.center.x,\\n\\t\\t\\t\\t\\ty:this.center.y,\\n\\t\\t\\t\\t\\tz:this.center.z\\n\\t\\t\\t\\t};\\n\\t\\t\\t\\tthis.veticies[i].vertexUpdate();\\n\\t\\t\\t};\\n\\t\\t},\\n\\t\\tdraw : function() {\\n\\t\\t\\tif(this.flag == true) {\\n\\t\\t\\t\\tctx.beginPath();\\n\\t\\t\\t\\tfor(var i=0; i&lt;this.veticies.length; i++) {\\n\\t\\t\\t\\t\\tfor(var j=i; j&lt;this.veticies.length; j++) {\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tvar distance = \\n\\t\\t\\t\\t\\t\\t(this.veticies[i].affineOut.x-this.veticies[j].affineOut.x)*(this.veticies[i].affineOut.x-this.veticies[j].affineOut.x) +\\n\\t\\t\\t\\t\\t\\t(this.veticies[i].affineOut.y-this.veticies[j].affineOut.y)*(this.veticies[i].affineOut.y-this.veticies[j].affineOut.y);\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\tif(distance &lt;= this.radius*3) {\\n\\t\\t\\t\\t\\t\\t\\tctx.moveTo(\\n\\t\\t\\t\\t\\t\\t\\t\\tthis.veticies[i].affineOut.x,\\n\\t\\t\\t\\t\\t\\t\\t\\tthis.veticies[i].affineOut.y\\n\\t\\t\\t\\t\\t\\t\\t);\\n\\t\\t\\t\\t\\t\\t\\tctx.lineTo(\\n\\t\\t\\t\\t\\t\\t\\t\\tthis.veticies[j].affineOut.x,\\n\\t\\t\\t\\t\\t\\t\\t\\tthis.veticies[j].affineOut.y\\n\\t\\t\\t\\t\\t\\t\\t);\\n\\t\\t\\t\\t\\t\\t};\\n\\t\\t\\t\\t\\t};\\n\\t\\t\\t\\t};\\n\\t\\t\\t\\tctx.closePath();\\n\\t\\t\\t\\tctx.stroke();\\n\\t\\t\\t};\\n\\t\\t}\\n\\t};\\n\\t/* class */\\n\\tvar sphereNum = 20;\\n\\tvar s = new Array();\\n\\t/*-----------------------------------------------------*/\\n\\tvar setup = function() {\\n\\t\\tfor(var i=0; i&lt;sphereNum; i++) {\\n\\t\\t\\ts[i] = new sphere({radius:100, particleNum:250, center:{x:70*i - (sphereNum-1)*70/2,y:0,z:0}});\\n\\t\\t};\\n\\t};\\n\\t/*-----------------------------------------------------*/\\n\\tvar update = function() {\\n\\t\\tfor(var i=0; i&lt;sphereNum; i++) {\\n\\t\\t\\ts[i].update();\\n\\t\\t};\\n\\t};\\n\\t/*-----------------------------------------------------*/\\n\\tvar draw = function() {\\n\\t\\tfor(var i=0; i&lt;sphereNum; i++) {\\n\\t\\t\\ts[i].draw();\\n\\t\\t};\\n\\t};\\n\\t\\n\\t\\n\\tvar chars = {\\n\\t\\tA : \\\&quot;\\\&quot;,\\n\\t\\tB : \\\&quot;\\\&quot;,\\n\\t\\tC : \\\&quot;\\\&quot;,\\n\\t\\tD : \\\&quot;\\\&quot;,\\n\\t\\tE : \\\&quot;\\\&quot;,\\n\\t\\tF : \\\&quot;\\\&quot;,\\n\\t\\tG : \\\&quot;\\\&quot;,\\n\\t\\tH : \\\&quot;\\\&quot;,\\n\\t\\tI : \\\&quot;\\\&quot;,\\n\\t\\tJ : \\\&quot;\\\&quot;,\\n\\t\\tK : \\\&quot;\\\&quot;,\\n\\t\\tL : \\\&quot;\\\&quot;,\\n\\t\\tM : \\\&quot;\\\&quot;,\\n\\t\\tN : \\\&quot;\\\&quot;,\\n\\t\\tO : \\\&quot;\\\&quot;,\\n\\t\\tP : \\\&quot;\\\&quot;,\\n\\t\\tQ : \\\&quot;\\\&quot;,\\n\\t\\tR : \\\&quot;\\\&quot;,\\n\\t\\tS : \\\&quot;\\\&quot;,\\n\\t\\tT : \\\&quot;\\\&quot;,\\n\\t\\tU : \\\&quot;\\\&quot;,\\n\\t\\tV : \\\&quot;\\\&quot;,\\n\\t\\tW : \\\&quot;\\\&quot;,\\n\\t\\tX : \\\&quot;\\\&quot;,\\n\\t\\tY : \\\&quot;\\\&quot;,\\n\\t\\tZ : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;!\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;?\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;0\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;1\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;2\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;3\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;4\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;5\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;6\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;7\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;8\\\&quot; : \\\&quot;\\\&quot;,\\n\\t\\t\\\&quot;9\\\&quot; : \\\&quot;\\\&quot;\\n\\t};\\n\\tvar charsLength = 0;\\n\\tvar charCounter = 0;\\n\\tvar bufferImages = {};\\n\\tvar bufferCanvases = {};\\n\\tfor(var i in chars) {\\n\\t\\tcharsLength++;\\n\\t\\tbufferImages[i] = new Image();\\n\\t\\tbufferImages[i].src = chars[i];\\n\\t\\tbufferImages[i].onload = function() {\\n\\t\\t\\tcharCounter++;\\n\\t\\t\\tif(charCounter === charsLength) {\\n\\t\\t\\t\\tbufferDraw();\\n\\t\\t\\t};\\n\\t\\t};\\n\\t};\\n\\tvar bufferDraw = function() {\\n\\t\\tfor(var i in chars) {\\n\\t\\t\\tvar canvas = document.createElement(\\\&quot;canvas\\\&quot;);\\n\\t\\t\\tcanvas.id = i;\\n\\t\\t\\tdocument.getElementById(\\\&quot;buffer\\\&quot;).appendChild(canvas);\\n\\t\\t\\tdocument.getElementById(i).getContext(\\\&quot;2d\\\&quot;).drawImage(\\n\\t\\t\\t\\tbufferImages[i],\\n\\t\\t\\t\\t0,\\n\\t\\t\\t\\t0,\\n\\t\\t\\t\\t100,\\n\\t\\t\\t\\t100\\n\\t\\t\\t);\\n\\t\\t};\\n\\t\\tstart();\\n\\t};\\n\\n\\tvar textChanger = function(text, sphereRadius, sphereSpace, unitTime) {\\n\\t\\tvar changeIncrement = 0;\\n\\t\\tvar charNum = text.length;\\n\\t\\tvar center = new Array();\\n\\t\\tfor(var i=0; i&lt;charNum; i++) {\\n\\t\\t\\tcenter[i] = {x:sphereSpace*i - sphereSpace*(charNum-1)/2, y:0, z:0};\\n\\t\\t};\\n\\t\\tvar changer = function() {\\n\\t\\t\\tsetTimeout(function() {\\n\\t\\t\\t\\ts[changeIncrement].type = text[changeIncrement];\\n\\t\\t\\t\\ts[changeIncrement].targetCenter = center[changeIncrement]; \\n\\t\\t\\t\\ts[changeIncrement].targetRadius = sphereRadius; \\n\\t\\t\\t\\tchangeIncrement++;\\n\\t\\t\\t\\tif(changeIncrement &lt; charNum) {\\n\\t\\t\\t\\t\\tchanger();\\n\\t\\t\\t\\t};\\n\\t\\t\\t}, unitTime);\\n\\t\\t};\\n\\t\\tfor(var i=charNum; i&lt;s.length; i++) {\\n\\t\\t\\ts[i].type = \\\&quot;_\\\&quot;;\\n\\t\\t};\\n\\t\\tchanger();\\n\\t};\\n\\t\\n\\tvar fullSet = function() {\\n\\t\\tvar alpha = \\\&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ__?!1234567890\\\&quot;;\\n\\t\\tvar col = 10;\\n\\t\\tvar colUnit = 80;\\n\\t\\tvar rowUnit = 120;\\n\\t\\tfor(var i=0; i&lt;alpha.length; i++) {\\n\\t\\t\\ts[i].targetCenter = {\\n\\t\\t\\t\\tx:(i%10)*colUnit - (col-1)*colUnit/2,\\n\\t\\t\\t\\ty:Math.floor(i/10)*-rowUnit + 180,\\n\\t\\t\\t\\tz:0\\n\\t\\t\\t};\\n\\t\\t\\ts[i].type = alpha[i];\\n\\t\\t};\\n\\t};\\n\\tvar textSet = [\\n\\t\\t{text:\\\&quot;WEBSPHERE\\\&quot;, sphereRadius:140, sphereSpace:80, unitTime:100, time:1000},\\n\\t\\t{text:\\\&quot;THIS_IS\\\&quot;, sphereRadius:120, sphereSpace:70, unitTime:120, time:4000},\\n\\t\\t{text:\\\&quot;EXPERIMENTAL\\\&quot;, sphereRadius:120, sphereSpace:70, unitTime:50, time:2000},\\n\\t\\t{text:\\\&quot;TYPEFACE\\\&quot;, sphereRadius:120, sphereSpace:70, unitTime:100, time:4000},\\n\\t\\t{text:\\\&quot;BASED_ON\\\&quot;, sphereRadius:100, sphereSpace:60, unitTime:100, time:3000},\\n\\t\\t{text:\\\&quot;HELVETICA\\\&quot;, sphereRadius:140, sphereSpace:80, unitTime:100, time:2000},\\n\\t\\t{text:\\\&quot;@@@@@@@@\\\&quot;, sphereRadius:60 + Math.random()*60, sphereSpace:200, unitTime:100, time:4000},\\n\\t\\t{text:\\\&quot;MOVABLE\\\&quot;, sphereRadius:120, sphereSpace:70, unitTime:100, time:2000},\\n\\t\\t{text:\\\&quot;AND\\\&quot;, sphereRadius:100, sphereSpace:60, unitTime:150, time:3500},\\n\\t\\t{text:\\\&quot;PROGRAMABLE\\\&quot;, sphereRadius:120, sphereSpace:70, unitTime:50, time:2000},\\n\\t\\t{text:\\\&quot;!!!!!!!\\\&quot;, sphereRadius:100, sphereSpace:60, unitTime:100, time:3500},\\n\\t\\t{text:\\\&quot;HACK_ME!\\\&quot;, sphereRadius:140, sphereSpace:80, unitTime:100, time:2500},\\n\\t\\t{text:\\\&quot;@@@@@@@@\\\&quot;, sphereRadius:60 + Math.random()*60, sphereSpace:200, unitTime:100, time:4000}\\n\\t];\\n\\t\\n\\tvar textSetChangerIncrement = 0;\\n\\tvar textSetChanger = function() {\\n\\t\\tsetTimeout(function() {\\t\\t\\t\\n\\t\\t\\ttextChanger(\\n\\t\\t\\t\\ttextSet[textSetChangerIncrement].text,\\n\\t\\t\\t\\ttextSet[textSetChangerIncrement].sphereRadius,\\n\\t\\t\\t\\ttextSet[textSetChangerIncrement].sphereSpace,\\n\\t\\t\\t\\ttextSet[textSetChangerIncrement].unitTime\\n\\t\\t\\t);\\n\\t\\t\\ttextSetChangerIncrement++;\\n\\t\\t\\tif(textSetChangerIncrement == textSet.length) {\\n\\t\\t\\t\\ttextSetChangerIncrement = 0;\\n\\t\\t\\t};\\n\\t\\t\\ttextSetChanger();\\n\\t\\t}, textSet[textSetChangerIncrement].time);\\n\\t};\\n\\tvar vibrateCV = new closeValue(200, 500);\\n\\tvar invertCV = new closeValue(1000, 1200);\\n\\t\\n\\tvar start = function() {\\n\\t\\tsetup();\\n\\t\\tsetInterval(function() {\\n\\t\\t\\tif(vibrateCV.execution() &gt; 0.8) {\\n\\t\\t\\t\\tvibrateFlag = true;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tvibrateFlag = false;\\n\\t\\t\\t};\\n\\t\\t\\tif(invertCV.execution() &gt; 0.7) {\\n\\t\\t\\t\\tstrokeColor = \\\&quot;rgba(0,0,0,0.1)\\\&quot;;\\n\\t\\t\\t\\tbackgroundColor = \\\&quot;rgba(255,255,255,1)\\\&quot;;\\n\\t\\t\\t} else {\\n\\t\\t\\t\\tstrokeColor = \\\&quot;rgba(255,255,255,0.1)\\\&quot;;\\n\\t\\t\\t\\tbackgroundColor = \\\&quot;rgba(0,0,0,1)\\\&quot;;\\n\\t\\t\\t};\\n\\t\\t\\tctx.clearRect(0, 0, canvasWidth, canvasHeight);\\n\\t\\t\\tctx.fillStyle = backgroundColor;\\n\\t\\t\\tctx.fillRect(0, 0, window.innerWidth, window.innerHeight);\\n\\t\\t\\tctx.strokeStyle = strokeColor;\\n\\t\\t\\tupdate();\\n\\t\\t\\tdraw();\\n\\t\\t}, 1000/60);\\n\\t\\ttextSetChanger();\\n\\t};\\n\\tdocument.body.onmousemove = function(e) {\\n\\tcamera.rotate.x = e.pageY/window.innerHeight * 180 - 90;\\n\\tcamera.rotate.y = e.pageX/window.innerWidth * 180 - 90;\\n\\tdocument.onmousedown = function() {camera.zoom = Math.random()*1+1};\\n\\tdocument.onmouseup = function() {camera.zoom = 1};\\n};\&quot;,\&quot;html_pre_processor\&quot;:\&quot;none\&quot;,\&quot;css_pre_processor\&quot;:\&quot;none\&quot;,\&quot;js_pre_processor\&quot;:\&quot;none\&quot;,\&quot;html_classes\&quot;:\&quot;\&quot;,\&quot;css_starter\&quot;:\&quot;neither\&quot;,\&quot;css_prefix_free\&quot;:false,\&quot;css_external\&quot;:\&quot;\&quot;,\&quot;js_library\&quot;:\&quot;\&quot;,\&quot;js_modernizr\&quot;:false,\&quot;js_external\&quot;:\&quot;\&quot;,\&quot;created_at\&quot;:\&quot;2013-05-21T11:16:33.000Z\&quot;,\&quot;updated_at\&quot;:\&quot;2013-05-21T11:17:00.000Z\&quot;,\&quot;session_hash\&quot;:\&quot;1f9a3d530b582394203d212448dccbd7\&quot;,\&quot;title\&quot;:\&quot;motion graphic typeface\&quot;,\&quot;description\&quot;:\&quot;\&quot;,\&quot;slug_hash\&quot;:\&quot;nuJCG\&quot;,\&quot;head\&quot;:\&quot;\&quot;,\&quot;private\&quot;:false,\&quot;has_animation\&quot;:true,\&quot;css_pre_processor_lib\&quot;:\&quot;\&quot;,\&quot;checksum\&quot;:586715374,\&quot;screenshot_uuid\&quot;:\&quot;3756eccb-9af5-40e2-80bf-2d28681205f3\&quot;,\&quot;team_id\&quot;:0,\&quot;css_prefix\&quot;:\&quot;neither\&quot;,\&quot;template\&quot;:false}&quot;,&quot;__itemType&quot;:&quot;pen&quot;,&quot;__profiled&quot;:{&quot;id&quot;:42687,&quot;name&quot;:&quot;ara&quot;,&quot;username&quot;:&quot;ara_node&quot;,&quot;type&quot;:&quot;user&quot;,&quot;is_team&quot;:false,&quot;base_url&quot;:&quot;/ara_node&quot;},&quot;__preprocessors&quot;:{&quot;html&quot;:{&quot;syntaxes&quot;:[&quot;none&quot;,&quot;html&quot;,&quot;markdown&quot;,&quot;slim&quot;,&quot;haml&quot;,&quot;pug&quot;],&quot;default&quot;:&quot;none&quot;,&quot;preprocessors&quot;:[&quot;markdown&quot;,&quot;slim&quot;,&quot;haml&quot;,&quot;pug&quot;],&quot;pretty_syntaxes&quot;:{&quot;none&quot;:&quot;None&quot;,&quot;haml&quot;:&quot;Haml&quot;,&quot;markdown&quot;:&quot;Markdown&quot;,&quot;slim&quot;:&quot;Slim&quot;,&quot;pug&quot;:&quot;Pug&quot;}},&quot;css&quot;:{&quot;syntaxes&quot;:[&quot;none&quot;,&quot;css&quot;,&quot;sass&quot;,&quot;scss&quot;,&quot;less&quot;,&quot;stylus&quot;,&quot;postcss&quot;],&quot;default&quot;:&quot;none&quot;,&quot;preprocessors&quot;:[&quot;sass&quot;,&quot;scss&quot;,&quot;less&quot;,&quot;stylus&quot;,&quot;postcss&quot;],&quot;pretty_syntaxes&quot;:{&quot;none&quot;:&quot;None&quot;,&quot;less&quot;:&quot;LESS&quot;,&quot;scss&quot;:&quot;SCSS&quot;,&quot;sass&quot;:&quot;Sass&quot;,&quot;stylus&quot;:&quot;Stylus&quot;,&quot;postcss&quot;:&quot;PostCSS&quot;},&quot;prefixes&quot;:[&quot;autoprefixer&quot;,&quot;prefixfree&quot;,&quot;neither&quot;],&quot;default_prefix&quot;:&quot;neither&quot;,&quot;exclude_emmet_syntaxes&quot;:[&quot;none&quot;,&quot;postcss&quot;],&quot;bases&quot;:[&quot;normalize&quot;,&quot;reset&quot;,&quot;neither&quot;],&quot;default_base&quot;:&quot;neither&quot;},&quot;js&quot;:{&quot;syntaxes&quot;:[&quot;none&quot;,&quot;js&quot;,&quot;coffeescript&quot;,&quot;livescript&quot;,&quot;typescript&quot;,&quot;babel&quot;],&quot;default&quot;:&quot;none&quot;,&quot;preprocessors&quot;:[&quot;coffeescript&quot;,&quot;livescript&quot;,&quot;typescript&quot;,&quot;babel&quot;],&quot;pretty_syntaxes&quot;:{&quot;none&quot;:&quot;None&quot;,&quot;coffeescript&quot;:&quot;CoffeeScript&quot;,&quot;livescript&quot;:&quot;LiveScript&quot;,&quot;typescript&quot;:&quot;TypeScript&quot;,&quot;babel&quot;:&quot;Babel&quot;},&quot;words_we_cannot_instrument&quot;:[&quot;requestAnimationFrame&quot;,&quot;setInterval&quot;]}},&quot;__embed_modal_script&quot;:&quot;//production-assets.codepen.io/assets/embed/modal/embed_modal-c245005654fbf205a822a1a34518db2061161755f1defdf4d54d6e591b6182c1.js&quot;,&quot;__path_to_details_comment_js&quot;:&quot;//production-assets.codepen.io/assets/details/comment-af0e08a3d2eddfc00ab6327ab7a735d0b9d8c8cf12522b8d345b365826cd2b93.js&quot;,&quot;__syntax_highlighting_script&quot;:&quot;//production-assets.codepen.io/assets/comments/syntax_highlight_comments-00f89a531a3ef623b2348cdc5459c163b3c78ba0180576b129adf3ac44afb224.js&quot;,&quot;__favicon_mask_icon&quot;:&quot;//production-assets.codepen.io/assets/favicon/logo-pin-f2d2b6d2c61838f7e76325261b7195c27224080bc099486ddd6dccb469b8e8e6.svg&quot;,&quot;__favicon_shortcut_icon&quot;:&quot;//production-assets.codepen.io/assets/favicon/favicon-8ea04875e70c4b0bb41da869e81236e54394d63638a1ef12fa558a4a835f1164.ico&quot;,&quot;__path_to_console_runner_js&quot;:&quot;//production-assets.codepen.io/assets/editor/live/console_runner-079c09a0e3b9ff743e39ee2d5637b9216b3545af0de366d4b9aad9dc87e26bfd.js&quot;,&quot;__path_to_events_runner_js&quot;:&quot;//production-assets.codepen.io/assets/editor/live/events_runner-73716630c22bbc8cff4bd0f07b135f00a0bdc5d14629260c3ec49e5606f98fdd.js&quot;,&quot;__path_to_live_reloader_js&quot;:&quot;//production-assets.codepen.io/assets/editor/live/css_live_reload_init-2c0dc5167d60a5af3ee189d570b1835129687ea2a61bee3513dee3a50c115a77.js&quot;,&quot;__path_to_stop_execution_on_timeout&quot;:&quot;//production-assets.codepen.io/assets/common/stopExecutionOnTimeout-b2a7b3fe212eaa732349046d8416e00a9dec26eb7fd347590fbced3ab38af52e.js&quot;,&quot;__cdn_css_url&quot;:&quot;//production-assets.codepen.io/assets/editor/other/cdn/cdncss_data-ec15b2c6d375770b5a89c55222b310efb13b5e288364dd45101891ee15e3552a.json&quot;,&quot;__cdn_js_url&quot;:&quot;//production-assets.codepen.io/assets/editor/other/cdn/cdnjs_data-a33ef160fe591f5b7c3b9189f83712bf4ac3c0e38bc026169c911f79361b6a71.json&quot;,&quot;__theme_url_twilight&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/twilight-913694f984ee6a61665648153e2c73cc43af641fe5b14faca0bb1a6febfa9358.css&quot;,&quot;__theme_url_solarized_dark&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/solarized-dark-637a1d47e4f03272e3c9a5d5c2f1c6f56a0d836e9fb845ecc97a3f815408faa1.css&quot;,&quot;__theme_url_tomorrow_night&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/tomorrow-night-272c989e172e8017a56f73346bbb52b182cfd89dc322c27fd50f7f81aa3fb703.css&quot;,&quot;__theme_url_oceanic_dark&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/oceanic-dark-f5f4badc8d0e4e98f34bc3bd5e6baefdc0820b9d52493f223c0a1bbdf12625b3.css&quot;,&quot;__theme_url_panda&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/panda-767cc3958eed35c2009b7dda00d7c67b87efcd00df43e0bd6879c825f58729b9.css&quot;,&quot;__theme_url_duotone_dark&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/duotone-dark-e2a062e07aaf2106aec618e19a242c9dbe1cae5c62c460ff0b536da38df82968.css&quot;,&quot;__theme_url_classic&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/classic-c35994d526e32022187ed007977fb0831cf56297d2dd4ce3b98336b4ca485512.css&quot;,&quot;__theme_url_solarized_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/solarized-light-d57ab095f971dd6c0fefeecec4c57384c255afd76bd199a2ad0cc729576f90a9.css&quot;,&quot;__theme_url_xq_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/xq-light-02bba026eca723faf5fafeb00bbb3a39116bbfcc1eaac151fc44f45f1f9297b5.css&quot;,&quot;__theme_url_oceanic_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/oceanic-light-40562e6a61d6f15ec7492c065e3cf44eafd9564a2fdb61c870f3ea03071af927.css&quot;,&quot;__theme_url_mdn_like&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/mdn-like-cbae1cbaae62f6b7f508d360083ec78a51822f9bcd692ed7ba3c275098f79e0b.css&quot;,&quot;__theme_url_duotone_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/duotone-light-b42323eb8cb2cb31ebdaf1e2e2c3e833c92cffecbed16e84eaffd58a0c494e52.css&quot;,&quot;__theme_url_scoped_twilight&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/twilight-59a69208c0ea422a5a6f28e9488723759d0fe294ddcbddb09fbf034daf23f56c.css&quot;,&quot;__theme_url_scoped_solarized_dark&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/solarized-dark-872f0216b7cb70091bae3d6150c0b71920c1f389b3f7ce72a519bb761518c542.css&quot;,&quot;__theme_url_scoped_tomorrow_night&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/tomorrow-night-0dd87944c0381dd89e9a740891f90ac37c78dea4a51d1b58d74051a451c3e95d.css&quot;,&quot;__theme_url_scoped_oceanic_dark&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/oceanic-dark-045d9d60b2221699df4ce89977615045ce6b7143309d044a9c51ef26613a9f41.css&quot;,&quot;__theme_url_scoped_panda&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/panda-07b01e1b32788d9c4ea8489576ae4bba317381c3070df9077f0682afb3b52e1c.css&quot;,&quot;__theme_url_scoped_duotone_dark&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/duotone-dark-d0ba28cd671fbbca73eeb6cd35083e615eae4bca9786a3360c963ae1ca0a5b6d.css&quot;,&quot;__theme_url_scoped_classic&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/classic-ba2c063c699011899aa02233b099f105bd296fd5d1b7ad983244c15d71c4b2b4.css&quot;,&quot;__theme_url_scoped_solarized_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/solarized-light-b297ef325717346a94e88ef2bf8a1cc8c2445d499a3ed302ae310d91bd5bda02.css&quot;,&quot;__theme_url_scoped_xq_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/xq-light-8a327177b390bcdcd0e51d6267ebed37e377d7e775b24ff958970c9641c9e8ed.css&quot;,&quot;__theme_url_scoped_oceanic_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/oceanic-light-2f2dfa6d8f0e97e0a7f503a72d296cb84a5020dd98e83af56b544bb23b0a37c1.css&quot;,&quot;__theme_url_scoped_mdn_like&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/mdn-like-3063b654c402b23a686c9061d94a9939fc2e2584ee14dc12fbd6a63c8de92a59.css&quot;,&quot;__theme_url_scoped_duotone_light&quot;:&quot;//production-assets.codepen.io/assets/editor/themes/scoped/duotone-light-46dced8bf6b482b0510abfc28166ff319f9645d70504b2bc53851122df74dfd7.css&quot;}">

  <script src="js/everypage-d56a54df8098861494a1dd36fc55100e4d428b8688014728be2127ad85b56b20.js"></script>


  

  <script src="js/commonlibs-48c879b1748ca6c0bab4a084e872f29c5270443d03a56e0260cd100ae11bf7f7.js"></script>
<script src="js/codemirror-49fac19bd6d11c3a2ea540981c0e5603b5afc6abc14dfa057940fb858fceec48.js"></script>



  <script src="js/index-299d44c74eb91a7b414319cdf066a821600c7620a364d5d4c0b8540b5775eea7.js"></script>







</body>

</html>
